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("")
    }
    }


  • 相关阅读:
    让IE6/IE7/IE8支持HTML5标签的js代码
    你应该抓紧学习Python,它是开发Web应用最强大的语言
    细数IE6的一串串的恼人bug,附加解决方法!
    邪恶的编码:复制与粘帖
    谈谈微信公众平台开发
    jQuery练手:仿新浪微博图片文字列表淡进淡出上下滚动效果
    DIV-CSS布局中position属性详解
    解决java编译错误:编码GBK的不可映射字符
    离线下载安装 NLTK 的 nltk_data 模块
    Python NLTK 自然语言处理入门与例程(转)
  • 原文地址:https://www.cnblogs.com/605395451/p/2127743.html
Copyright © 2011-2022 走看看