【问题标题】:Gridview making a column invisableGridview 使列不可见
【发布时间】:2010-06-17 14:33:47
【问题描述】:

您好,我有一个网格视图,它是通过 C# 使用 DataSet 动态生成的。 我将行 ID 字段(来自数据库)传递给网格视图,因为当用户单击以编辑记录时需要这样做。但是我不希望用户能够查看该列。 我尝试了以下方法,但它似乎不起作用?谁能建议一种隐藏列的方法或将信息附加到网格视图行的更好方法,以便以后使用。 c#

        DataColumn ColImplantCustomerDetailsID = new DataColumn();
        ColImplantCustomerDetailsID.ColumnName = "Implant ID";
        ColImplantCustomerDetailsID.DataType = typeof(int);
        ColImplantCustomerDetailsID.Visable = false; <-- visable doens't work here.

asp.net

【问题讨论】:

    标签: c# asp.net gridview


    【解决方案1】:

    DataColumn 没有“可见”属性。哎呀,它也没有“可见”属性。

    在绑定之前使用它

    gridviewNameHere.Columns[index].Visible = false;
    

    您可以让它在您的一个事件处理程序上再次可见。

    【讨论】:

      【解决方案2】:

      另一个选项,而不是隐藏列,是使用 GridView 的 DataKeyNames 属性来存储 ID 字段的名称。然后您可以使用myGridView.SelectedValue 来检索选定的 ID。

      【讨论】:

      • 谢谢,我已经考虑过这样做。我无法完全理解它,但我可能不得不再看一遍。
      【解决方案3】:

      初始化时使用列的索引隐藏它...

      grid.Columns[index].Visible = false;
      

      我实际上按照您的建议隐藏了一些东西,例如 - 该行的数据库状态名称,可以在用户不需要看到的代码中使用。

      【讨论】:

        【解决方案4】:
        【解决方案5】:

        GridView组件的OnRowDataBound事件中:

        // c# 
        protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            int index = 0; // put the index of the column you need hide.
            e.Row.Cells[index].Visible = false;  
        }
        

        【讨论】:

          猜你喜欢
          • 2013-05-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-11-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多