控件Repeater的嵌套使用

控件Repeater的嵌套使用可以嵌套使用Repeater。        if (e.            Repeater rp = (Repeater)e.Item.            HtmlInputHidden txtChild = (HtmlInputHidden)e.Item.     …

控件Repeater的嵌套使用

左直拳

 

可以嵌套使用Repeater。

 

页面代码:

<asp:Repeater ID=”rpParent” runat=”server” OnItemCommand =”rpParent_ItemCommand” >

    <HeaderTemplate>

         <table width=”100%” height=”100%” border=”0″ cellspacing=”0″ cellpadding=”5″ style=”text-align:left;”>

         <tr>

              <td>父字段1</td>

              <td>父字段2</td>

              <td></td>

         </tr>

</HeaderTemplate>

<ItemTemplate>

          <tr>

          <td><%# Eval(“Parent1″)%><input id=”txtParent1″ type=”hidden” value='<%# Eval(“Parent1″)%>’ runat=”server” /></td>

          <td><%# Eval(“Parent2”)%></td>

          <td><asp:LinkButton ID=”lnkShowChild” runat=”server” CommandName =”ShowChild” >展开孩子</asp:LinkButton></td>

          </tr>

          <tr><td colspan=”3″>

 

 

              <asp:Repeater ID=”rpChild” runat=”server”>

                  <HeaderTemplate>

                  <table width=”100%” height=”100%” border=”0″ cellspacing=”0″ cellpadding=”5″ style=”text-align:left;”>

             <tr><td>子字段1</td><td>子字段2</td>

                  </tr>

                   </HeaderTemplate>

                   <ItemTemplate>

                        <tr><td><%# Eval(“Child1”)%></td><td><%# Eval(“Child2”)%></td></tr>

                   </ItemTemplate>

                   <FooterTemplate>

                        </table>

                    </FooterTemplate>                                

                </asp:Repeater>

 

 

</td></tr>

</ItemTemplate>

<FooterTemplate>

                         </table>

</FooterTemplate>                   

</asp:Repeater>

 

后台代码:

    protected void rpParent_ItemCommand(object source, RepeaterCommandEventArgs e)

    {

        if (e.CommandName == “ShowChild”)

        {

            Repeater rp = (Repeater)e.Item.FindControl(“rpChild”);

            HtmlInputHidden txtChild = (HtmlInputHidden)e.Item.FindControl(“txtChild”);

            rp.DataSource = _GetData(txtChild.Value);

            rp.DataBind();

        }

}

 

有2个地方值得一提:

1、       象 <%# Eval(“Child1”)%> 这类的写法,是对距离最近的Repeater而言。象这里的例子,子Repeater嵌套在父Repeater里,但位于子Repeater里的<%# Eval(“Child1”)%> 不会与父控件有冲突;

2、       后台代码这里支持事件。不象网上找到的许多例子,都是装载时一口气打开。而是点击“打开孩子”才展开。参数是存放在一个Hidden的HTML文本框里。之前听说只有ASP.NET的控件才有可能在后台FindControl,但现在看来也可以,也许是2。0的缘故吧。

 

 

今天的文章控件Repeater的嵌套使用分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/59573.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注