c# - 隐藏 GridView ID 列

标签 c# asp.net .net

似乎是一个普遍的问题。

我正试图隐藏我的 GridView 的一列。我已经读到,简单地将列设置为“visible = false”是行不通的,因为我正在自动生成我的数据。

目前我的代码是这样的:

 protected void Page_Load(object sender, EventArgs e)
    {
        bind();

        if (GridView1.Columns.Count > 0)
            GridView1.Columns[0].Visible = false;
        else
        {
            GridView1.HeaderRow.Cells[0].Visible = false;
            foreach (GridViewRow gvr in GridView1.Rows)
            {
                gvr.Cells[1].Visible = false;
            }
        }

    }

'if' 语句将不会触发,正如我所说的那样,我正在自动生成数据。通过上面的循环,我可以隐藏列的标题文本,但想隐藏整个列,同时仍然能够访问隐藏的数据。

最佳答案

如何在控件的生命周期后期(当 Columns 集合已填充时)执行此操作:

protected void GridView1_PreRender(object sender, EventArgs e)
{
    if (GridView1.Columns.Count > 0)
        GridView1.Columns[0].Visible = false;
    else
    {
        GridView1.HeaderRow.Cells[0].Visible = false;
        foreach (GridViewRow gvr in GridView1.Rows)
        {
            gvr.Cells[1].Visible = false;
        }
    }
}

注意:您需要将 OnPreRender="GridView1_PreRender" 添加到您的 GridView 标记中。

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

相关文章:

C#正则表达式查找注解

c# - 如何在条件下隐藏 Crystal Report 中的数据库字段

c# - 多线程应用程序与记录器线程交互

asp.net - 正则表达式 .net 风格

c# - 如何在 C# 中实现 SOAP 客户端(专门针对 Windows Mobile)?

c# - 以编程方式控制 SQL Server Reporting Services 报表查看器

javascript - 在asp.net中可以实现这种请求吗?

c# - LINQ 知道如何优化 "queries"吗?

c# - 带动态参数的动态 lambda 表达式

c# - 如何以 MHz 为单位快照处理器各个内核的速度