为什么GridView的列数为0
朋友们,我正在使用以下代码在我的asp.net应用程序中填充GridView。
GridView grdExport = new GridView(); DataSet dsRecord = objHelper.gReturnDataSet(CommandType.Text, strSql); grdExport.DataSource = dsRecord.Tables[0]; grdExport.DataBind();
现在问题是在即时窗口,当我检查时,我得到以下结果:
?dsRecord.Tables[0].Columns.Count 16 ?dsRecord.Tables[0].Rows.Count 37 ?grdExport.Rows.Count 37 ?grdExport.Columns.Count 0
拜托,有谁可以告诉我为什么grdExport的列数为0?
GridView.Columns属性
检查一下:
Columns属性(集合)用于存储在GridView控件中呈现的所有显式声明的列字段。 您还可以使用Columns集合以编程方式管理列字段的集合。
如果您在网格中添加了列的列数更多,那么它将显示您添加的列的数量,而不是自动生成的列。
如果显示自动生成的列,则它将显示0.检查此标记:
现在它会将列的计数结果显示为1:
//在将列添加到gridview之前
?dtResult.Rows.Count 9 ?dtResult.Columns.Count 2 ?GridView1.Rows.Count 9 ?GridView1.Columns.Count 0
将列添加到gridview后。
?GridView1.Columns.Count 1
它显示counts = 0
因为默认情况下自动生成的列为true如果添加手动列,则它将显示列计数。
如果你写grdExport.AutoGenerateColumns = false
; 然后在页面中不会呈现任何列。
可能是因为你没有在页面上放置gridView? 像这样:PlaceHolder1.Controls.Add(grdExport)
相反?grdExport.Columns.Count。 在设计时在gridview中添加列集合时获得的计数。 你必须使用grdExport.Rows [0] .Cells.Count
绑定数据后将设置GridViewColumn列。 所以只需显示MessageBox.Show
即可找到列数。
grdExport.AutoGenerateColumns = false; MessageBox.Show(grdExport.Columns.Count.ToString());