gridview里设置自动生成列(AutogenerateColumns="True"),我想用编程方式动态隐藏某一列,使用gridview.columns[n].visible = false,提示列不存在;
我又尝试在Gview_RowDataBound事件里将每一行的某一值隐藏,结果是只隐藏值,而无法隐藏列标题。        
protected void Gview_RowDataBound(object sender, C1.Web.Ui.Controls.GridView.GridViewRowEventArgs e)
{
     e.Row.Cells[2].Visible = false;
}求大神有什么方法隐藏列,谢谢gridview

解决方案 »

  1.   

    你可以在 RowCreated 中设置 Visible。
      

  2.   

    我根本没有设置标题列,gridview是根据sql语句自动生成标题和数据的。我在Gview_RowCreated事件里也试过了,但还是只隐藏该列的数据,该列的标题没有隐藏,导致数据都向左移了一列
      

  3.   


    我根本没有设置标题列,gridview是根据sql语句自动生成标题和数据的。我在Gview_RowCreated事件里也试过了,但还是只隐藏该列的数据,该列的标题没有隐藏,导致数据都向左移了一列 
      

  4.   

    e.Row.Type 就会是 Header,也就是说标题行的Create或者RowDataBound是会触发事件的。我只能说你设置过什么不该设置的东西了,你没有描述出来。
      

  5.   

    另外我很奇怪,你的 C1.Web.Ui.Controls.GridView.GridViewRowEventArgs是什么东东?难道你没有使用标准的GridView?
      

  6.   

    Refer:http://www.cnblogs.com/insus/archive/2013/05/01/3052722.html
      

  7.   


    不好意思,之前因为忙没有时间看帖子,我是用了ComponentOne的C1GridView,这个控件完全继承了标准gridview,gridview能够隐藏列,c1gridview也应该可以吧
      

  8.   


    我是用了自动生成列的,所以根本用不了这种方法 :gridview.columns[n].visible = false
      

  9.   

    添加这一个字段就可以了,, 
      <asp:BoundColumn DataField="Id" Visible="false"></asp:BoundColumn>
      

  10.   


    根据你的要求再实作了另外一个,可以参考:
    http://www.cnblogs.com/insus/archive/2013/05/09/3068141.html