c# - 隐藏网格中的列

标签 c# html asp.net gridview

这是我的 html 标记,在 div 标记中将可见性添加为 false 会隐藏实际数据本身,但只留下一个空白列。我尝试访问 div 标签(是的,我将 runat="server" 标签添加到 html)并尝试像这样访问它 hideme.Visible = true;抛出一个编译错误

Does not exist in the current context.

我应该更改/修改什么以确保此列在我的网格中完全隐藏?

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" ShowFooter="true"
        onrowdatabound="GridView1_RowDataBound"  onrowcreated="GridView1_RowCreated">
    <Columns>
      <asp:BoundField DataField="abcd" HeaderText="abcd" />
      <asp:BoundField DataField="def" HeaderText="def" />
      <asp:BoundField DataField="hij" HeaderText="hij" />
      <asp:BoundField DataField="xyz" HeaderText="xyz" />
      <asp:BoundField DataField="eee" HeaderText="eee" />
      <asp:BoundField DataField="era" HeaderText="era" />
      <asp:BoundField DataField="nai" HeaderText="nai" />
      <asp:BoundField DataField="fac" HeaderText="fac" />
      <asp:TemplateField>
            <ItemTemplate>
                <div runat="server" style="visibility:hidden" id="hideme">
                    <asp:Label ID="lbllunch" runat="server" Text='<%# Eval("hij") %>' />
                    <asp:Label ID="lbllunchoverage" runat="server" Text='<%# Eval("xyz") %>' />
                    <asp:Label ID="lbleee" runat="server" Text='<%# Eval("eee") %>' />
                    <asp:Label ID="lblera" runat="server" Text='<%# Eval("era") %>' />
                    <asp:Label ID="lblnai" runat="server" Text='<%# Eval("nai") %>' />
                    <asp:Label ID="lblfac" runat="server" Text='<%# Eval("fac") %>' />
                </div>
            </ItemTemplate>
      </asp:TemplateField>
    </Columns>
</asp:GridView>     

编辑 我将 .Visible 命令添加到我的页面加载事件(我总是在我的页面上隐藏任何内容),如下所示:

protected void Page_Load(object sender, EventArgs e)
{
    hideme.Visible = false;
    /More here
}

最佳答案

由于 hideme 在 GridView TemplateField 中,您不能在 Page_Load 方法中访问它,但是您可以在 GridView1_RowDataBound 方法中访问它如下

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        // find the hideme div
        HtmlGenericControl div = (HtmlGenericControl)e.Row.FindControl("hideme");

        // set the visible property
        div.Visible = false;
    }
}

关于c# - 隐藏网格中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32815193/

相关文章:

asp.net - 如何在负载平衡的 Web 场中处理 ASP.NET 应用程序变量

asp.net - ASP.NET详细信息 View -编辑为空值错误

c# - 如何使用 openURL() 读取在 safari 中打开的 html 文件

c# - WinForms 中 C# 中的 OpenGL

c# - 在 .NET Core 中使用 JWT token 或 API key 的授权机制

c# - 如何修复 Visual Studio 2015 中的错误 "Could not load file or assembly ' Microsoft.VisualStudio.Web?

javascript - 如何创建在页面加载时执行的函数?

jquery - 如何防止 jquery 中的快速滚动?

javascript - 简单的 HTML/CSS 下拉导航栏不显示

c# - 在c#中生成8位唯一id