zoukankan      html  css  js  c++  java
  • 如何在Repeater的HeaderTemplate和FooterTemplate模板中寻找控件?

    方法一:

    在Repeater的ItemTemplate模板中的控件,我们可以用Items属性来遍历行并用FindControl进行寻找,

    如下所示:在Repeater的Item Command事件下下遍历:

    for(int i=0;i<repeater1.Items.Count;i++)

    {

    CheckBox cb=(CheckBox )repeater1.Items[i].FindControl("CheckBox1");

    if(cb.Checked)

    { //相关数据处理 }

    }

    但是,如果在HeaderTemplate和FooterTemplate模板中的控件就无能为力了,此时我们只能用Controls属性来解决问题。假设页面中有如下一个Repeater控件:

    程序代码
    <asp:Repeater>

      <HeaderTemplate>

        <asp:Label ID="Label1" runat="server" Text="AAAAAAA"></asp:Label>

      </HeaderTemplate>

      <ItemTemplate>

        <asp:Label ID="Label2" runat="server" Text='<%# Eval("name") %>'></asp:Label>

      </ItemTemplate>

      <FooterTemplate>

        <asp:Label ID="Label3" runat="server" Text="BBBBBBB"></asp:Label>

      </FooterTemplate>

    </asp:Repeater>

    下边代码示例寻找Label1和Label3:

    程序代码

    //在HeaderTemplate中寻找Label1,默认为第0个string s=((Label)Repeater1.Controls[0].FindControl("Label1")).Text;
    //在FooterTemplate中寻找Label2,默认为最后一个string s=((Label)Repeater1.Controls[Repeater1.Controls.Count - 1].FindControl("Label2")).Text;

     

     

     

    方法二:

     

    在repeater控件的ItemDataBound事件中也可以找到HeaderTemplate、ItemTemplate和FooterTemplate中的web服务器控件和Html服务器控件。。。。。
    区别只在于3个模板中的4个(e.Item.ItemType)

    HeaderTemplate中(e.Item.ItemType == ListItemType.Header)
    代码如下:
    protected void rptHlNews_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
    if (e.Item.ItemType == ListItemType.Header)
    {
    e.Item.FindControl("")
    }
    }

    ItemTemplate中(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    Item 和 AlternatingItem 一个是偶数行模板、一个是奇数行模板。。。。
    代码如下:
    protected void rptHlNews_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
    e.Item.FindControl("")
    }
    }

    FooterTemplate中(e.Item.ItemType == ListItemType.Footer)
    代码如下:
    protected void rptHlNews_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
    if (e.Item.ItemType == ListItemType.Footer)
    {
    e.Item.FindControl("")
    }
    }


  • 相关阅读:
    Centos7新特性——systemd取代init管理服务
    Git初探
    Nginx内置变量
    Nginx初探
    PHP多进程初步
    golang消息队列nsq
    golang 的 go异步编程通道要注意的问题
    golang 连接池mysql
    golang centos运行方法
    golang go path和go mod的区别
  • 原文地址:https://www.cnblogs.com/605395451/p/2127743.html
Copyright © 2011-2022 走看看