none
repeater嵌套的内层数据绑定和超链接的参数传递问题 RRS feed

  • 问题

    • <asp:repeater id="parent" runat="server">
         <ItemTemplate>
           <li onclick="showHideSubMenu(<%#Container.ItemIndex %>)"><a href="#"><%# DataBinder.Eval(Container.DataItem,"title") %></a></li>
           <ul id="submenu<%#Container.ItemIndex %>">
          
           <asp:repeater id="child" datasource='<%# ((DataRowView)Container.DataItem).Row.GetChildRows("myrelation") %>' runat="server">
               <ItemTemplate>  
                  <li><a href='A '><%# DataBinder.Eval(Container.DataItem, "[\"festival\"]")%></a></li>
               </ItemTemplate>
           </asp:repeater>
           </ul>
         </ItemTemplate>
       </asp:repeater>

    A处是要传递列名为“id”的值,数据表里明明有“id”这个字段,当我在内层的A处写成content.aspx?contentid=<%# DataBinder.Eval(Container.DataItem, "id"")%>时错误页面提示:DataBinding:“System.Data.DataRow”不包含名为“id”的属性。而不传参数是是正常运行的。

    不知如何解决,,请各位大虾帮忙,致谢!

    • 已移动 孟宪会Moderator 2010年11月15日 9:30 (发件人:.NET Framework 一般性问题讨论区)
    2010年11月12日 14:38

全部回复

  • 我注意到你是使用了内嵌的Repeater,请确认那个内嵌的Repeater的DataSource(动态获得)必定包含id。或者尝试一下:

    <ItemTemplate>  
                <li><a href='<%#Eval("id","content.aspx?contentid={0}")%> '><%# DataBinder.Eval(Container.DataItem, "[\"festival\"]")%></a></li>
             </ItemTemplate>

     

    2010年11月15日 3:42
  • 参照

    http://dotnet.aspx.cc/file/Access-Parent-DataItem-When-DataBinding-in-Nested-Data-Controls.aspx

    如果表结构正确,应该是可以 的。类似例子中的

      <% # DataBinder.Eval(Container.DataItem, " [\ " Title \ " ] " ) %>

     

    注意:必须写成 " [\ " Title \ " ] "


    【孟子E章】
    2010年11月15日 9:30
    版主