【问题标题】:Hide HeaderTemplate of asp Repeater隐藏aspRepeater的HeaderTemplate
【发布时间】:2014-01-20 13:16:13
【问题描述】:

我想在我的 asp.net 页面的 headerTemplate 块中隐藏一些行 这是我的 apsx 页面代码:

<HeaderTemplate>
  <table class="uk-table uk-table-hover uk-table-striped">
     <thead>
        <tr>
            <th class="uk-width-1-10">numbr 1</th>
            <th class="uk-width-1-10">numbr 2</th>
            <th class="uk-width-2-10">numbr 3</th>                                            
        </tr>
    </thead>
    <tbody>                                                                                       
</HeaderTemplate>                                            
<ItemTemplate>
... 

我决定隐藏 3 号

<HeaderTemplate>
  <table class="uk-table uk-table-hover uk-table-striped">
     <thead>
        <tr>
            <th class="uk-width-1-10">numbr 1</th>
            <th class="uk-width-1-10">numbr 2</th>
            <th class="uk-width-2-10"><asp:Label runat="server" ID="tdInfoHeader" Visible="true">numbr 3</asp:Label></th>                                            
        </tr>
    </thead>
    <tbody>                                                                                       
</HeaderTemplate>                                            
<ItemTemplate>
...     

但是在我的 C# 代码部分,我无法更改 tdInfoHeader.visible =false,我怎么能在我的 C# 部分隐藏数字 3?

【问题讨论】:

    标签: c# asp.net repeater


    【解决方案1】:

    您可以使用Repeater.ItemDataBound 事件来实现这一点。

    首先,确保在您的 aspx 代码中将 OnItemDataBound 属性设置为事件处理程序方法的名称,假设名称为 rpt1_ItemDataBound

    <asp:Repeater ID="rpt1" runat="server" OnItemDataBound="rpt1_ItemDataBound">
    

    然后在rpt1_ItemDataBound方法中隐藏tdInfoHeader

    protected void rpt1_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Header)
        {
            Label tdInfoHeader = (Label)e.Item.FindControl("tdInfoHeader");
            tdInfoHeader.Visible = false;
        }
    }
    

    【讨论】:

    • 谢谢,我使用了 myRepeaterID.Controls[0].FindControl("tdInfoHeader").Visible = false insted
    【解决方案2】:

    试试这个

    protected void r1_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Header) 
            {
                object headeRow = e.Item.FindControl("tdInfoHeader");
                headeRow.Visible = false;
            }       
        } 
    

    找到您的headerTemplate 行并设置visible=false

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多