如何从dataGridView隐藏特定列?

时间:2013-02-26 13:16:52

标签: c# winforms

如何隐藏DataGridview中的特定列及其标题 虽然能够使用它的价值? (只是没有显示)。 以下代码不起作用。

 gridview.Rows[e.RowIndex].Cells[11].Visible = false;

6 个答案:

答案 0 :(得分:28)

试试这个:

gridview.Columns["ColumnName"].Visible = false;

http://msdn.microsoft.com/en-us/library/0c24a0d7.aspx

答案 1 :(得分:1)

将列名称添加到网格视图的DataKeyNames ...

<asp:gridview id="GridView1" runat="server" datakeynames="ColumnName" onselectedindexchange="GridView1_SelectedIndexChanged"></asp:gridview>

然后您可以访问后面代码中的数据键...

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
    textbox.Text = GridView1.DataKeys[GridView1.SelectedIndex].Values["ColumnName"].ToString();
}

您可以使用逗号分隔添加更多DataKeyNames。然后,如果您不想,则根本不需要将列添加到GridView

答案 2 :(得分:1)

这是100%正确的解决方案.... this.dataGridView1.Columns[0].Visible = false;

答案 3 :(得分:0)

如果要隐藏gridview列,则应该有条件 ..

if(userlevel != 'Administrator') { GridView.Columns["ColumnName"].Visible = false; }

答案 4 :(得分:0)

你觉得合适就叫它。无论是否可见,数据仍然可供应用使用。

private void showHideGridColumns(bool show)
{
    List<String> lstColNames = new List<string>();
    lstColNames.Add("Column1");
    lstColNames.Add("Column2");
    lstColNames.Add("Column3");
    lstColNames.Add("Column4");
    foreach (DataGridViewColumn Col in DataGridView1.Columns)
    {
        if (!lstColNames.Contains(Col.Name.ToString()))
        {
            Col.Visible = show;
        }
    }
}

答案 5 :(得分:-2)

GridView.Columns[index of Column].Visible = false;