asp.net(C#)获取GridView列总数

我在页面的GridView动态添加不同的表数据,不同的表列数不同,如何动态从GridView中获取列总数。
提示:this.GridView1.Columns.Count不行,取到值的=0,请高手指点。谢谢!

你是在什么时候取的值?那个语句是没有错的,可以取到列数的,为零说明你取值的时候,GRIDVIEW并没有绑定完成,正在绑定中,你可以在GRIDVIEW的RowDataBound事件中加上 ClientScript.RegisterClientScriptBlock(this.GetType(), "test", "<script>alert('" + this.GridView1.Columns.Count.ToString() + "')</script>");
测试,可以弹出列的值追问

详细过程如下:我是从工具箱拖了一个GridView控件放在页面,而后通过页面的读取数据按钮,动态读取的excel的数据到GridView控件。读取结束后我想获取GridView的数据列数,结果用this.GridView1.Columns.Count读取为零。怎样才能读取到呢?

追答

是这样的?没试过从EXCEL中读取数据,但是你把GRIDVIEW的自动生成列勾上试过没有?如果已经勾上了还是为零,那么你在后台代码生成列试一下?比如
for (int i = 0; i < dt.Columns.Count; i++)
{
BoundField bc = new BoundField();
bc.DataField = dt.Columns[i].ColumnName.ToString();
bc.HeaderText = dt.Columns[i].Caption.ToString();
gridview1.Columns.Add(bc);
}
gridview1.DataBind();试一下
我这个是以DATATABLE为参照,你可以换成相应的while(READER.next()){bc=reader.get....}什么的

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-04-14
GV绑定数据以后在 this.GridView1.DataBind(); this.GridView1.Columns.Count 在看看
第2个回答  2012-04-14
MessageBox.Show(this.dataGridView1.Columns.Count+"");
第3个回答  2012-04-14
能获取到啊。。你是在绑定之后获取的吗 ⊙﹏⊙b汗
第4个回答  2012-04-14
this.rows.count就可以
相似回答