如何从GridView中删除列,其中DataSource是DataTable,而AutoGenerateColumns为true?

时间:2018-06-25 06:34:03

标签: c# asp.net gridview datatable

只想知道C#是否可行。

我有一个GridView。 GridView的数据源是从数据库生成的数据表。 AutoGenerateColumn为True。

因此,当我尝试以下代码时

gridView.Columns.RemoveAt(1); //I got 12 Columns from the DataTable

我收到以下错误:

  

异常详细信息:System.ArgumentOutOfRangeException:索引已出   范围。必须为非负数,并且小于   集合。

我不想从DataTable中删除它。在使用RenderControl将GridView转换为html文本之前,我想删除该列。而且我不希望该列以html文本显示。我也尝试过这样做:

foreach (GridViewRow row in gv.Rows){
    row.Cells[1].Visible = false;
}

但是它不会隐藏列标题。

有人知道是否可以删除列吗?

2 个答案:

答案 0 :(得分:0)

尝试一下

While i < len(li) :
  if i != "" :
      print(' The value of i', i) 
  else:
      print (' empty element ') 
  i=+1

答案 1 :(得分:0)

尝试一下:在GridView1.RowDataBound事件上

GridView1.Columns(0).Visible = False

OR

protected void bla_RowCreated(object sender, GridViewRowEventArgs e)
{
    e.Row.Cells[0].Visible = false; // hides the first column
}

实际上,每次GridView渲染时,都会多次调用RowCreated。但这有效