【问题标题】:How to hide a column in gridview accordingly to header field?如何根据标题字段隐藏gridview中的列?
【发布时间】:2014-03-27 03:42:09
【问题描述】:

我正在使用 gridview 来绑定我的数据。我想根据标题字段从后端隐藏一列

    <asp:TemplateField>
        <HeaderTemplate>
            Incident Number
        </HeaderTemplate>
        <ItemTemplate>
            <asp:Label ID="lb_incidentnumber" runat="server" Text='<%# Eval("IncidentNumber")%>'></asp:Label>
        </ItemTemplate>
    </asp:TemplateField>

我可以简单地写成gv_viewincident.Columns[3].Visible = false;,但我想通过提及标题名称而不是给出索引来隐藏该列..

怎么做?

【问题讨论】:

  • 也许这个链接对你有帮助,这个按数据字段查找 gridview 列。 [如何通过列名获取单元格值][1] [1]:stackoverflow.com/questions/9715983/…
  • @minamorsali 提供的链接很棒。我建议将函数转换为 extension method 以使其更易于使用。

标签: c# asp.net gridview


【解决方案1】:

这个

for (int i = 0; i < gv_viewincident.Columns.Count; i++)
{
if (gv_viewincident.Columns[i].HeaderText == "Incident Number")
{
gv_viewincident.Columns[i].Visible = false;
}
}

【讨论】:

    【解决方案2】:

    首先,让我们创建一个extension method,以便更轻松地访问该列。将此类放在 App_Code 文件夹中名为 GridViewExtensions.cs 的文件中。

    public static class GridViewExtensions
    {
        public static DataControlField GetColumnByHeaderText(this DataControlFieldCollection dataControlFieldCollection , string headerText)
        {
            foreach(var column in DataControlFieldCollection)
            {
                if(column.HeaderText==headerText)
                    return column;
            }
        }
    }
    

    那就简单了……

    gv_viewincident.Columns.GetColumnByHeaderText("Incident Number").Visible=false;
    

    当然,这假定您将标题文本添加到列中。

    <asp:TemplateField HeaderText="Incident Number">
    

    【讨论】:

      【解决方案3】:

      这是一个应该工作的:

      List<DataControlField> columns = grid.Columns.Cast<DataControlField>().ToList();
      
      columns.Find(col => col.HeaderText == "Incident Number").Visible = false;
      

      【讨论】:

        猜你喜欢
        • 2014-08-24
        • 2020-03-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-31
        • 1970-01-01
        相关资源
        最近更新 更多