ASP.NET Repeater控件一次性嵌套绑定!我知道可以分两次绑定,即先绑定外层Repeater控件,然后在Repeater_RowDataBound中,再找到下层的Repeater控件,再绑定,但我想实现一次性绑定两层控件,如何做到,我好像看到有人做到,只是没有说明原因?求助大侠!!!ASP.NETRepeater数据绑定

解决方案 »

  1.   

    为什么非要“一次性绑定”呢?不管嵌套多少层也不需要编写什么Repeater_RowDataBound代码。你可以把内容写到一个ascx中,然后把这个ascx拖到Repeater的模版设计器(vs的设计器中,选择Repeater,鼠标右键菜单中选择“编辑模版”功能)里边。也就是说,ascx是分层、组件式开发的天然机制,你可以对Repeater隐藏下一层次的具体实现,而用不着非要把不同层次的东西纠缠在一起设计出来。
      

  2.   

    如果要混合在一起写一个纠结的程序,那么可以参靠这个古老的(7年以前的)教程:http://blog.csdn.net/heker2007/article/details/1557919
      

  3.   

    你想一次性绑定啊???那你为何在Repeater_RowDataBound里面写呢,,,为什么不在Repeater_ItemDataBound里面写呢
      

  4.   

    我写错了,其实就是Repeater_ItemDataBound,但经过我自己的不断努力,已经解决了,确实可以一次绑定,即只需绑定最外层的Repeater,里面的Repeater设置好相应的DATASOURE即可,代码示例如下:<asp:Repeater ID="Repeater1" runat="server">
            <HeaderTemplate>
            <table>
            <tr><th>name</th><th>sons</th></tr>
            </HeaderTemplate>
            <ItemTemplate>
            <tr>
                <td><%#Eval("name") %></td>
                <td>
                    <asp:Repeater ID="Repeater2" runat="server" DataSource='<%#Eval("sons") %>'>
                    <ItemTemplate>
                        <ul>
                            <li><%# Eval("sname") %></li>
                            <li><%# Eval("sage") %></li>
                        </ul>
                    </ItemTemplate>
                    </asp:Repeater>
                </td>
            </tr>
            </ItemTemplate>
            <FooterTemplate>
            </table>
            </FooterTemplate>
            </asp:Repeater>