朋友们,我正在使用以下代码在我的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?
答案 0 :(得分:1)
它显示counts = 0
,因为默认情况下自动生成的列为true如果添加手动列,则它将显示列计数。
如果你写grdExport.AutoGenerateColumns = false
;然后在页面中不会呈现任何列。
答案 1 :(得分:1)
检查一下:
Columns属性(集合)用于显式存储所有内容 声明在GridView控件中呈现的列字段。您 也可以使用Columns集合以编程方式管理 列字段的集合。
如果您的网格中添加的列有更多列,那么它将显示您添加的列的数量,而不是自动生成的列。
如果显示自动生成的列,则它将显示0。 检查此标记:
<asp:GridView ID="GridView1" runat="server">
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID" />
</Columns>
</asp:GridView>
现在它会将列的计数结果显示为1:
//在向gridview添加列之前
?dtResult.Rows.Count
9
?dtResult.Columns.Count
2
?GridView1.Rows.Count
9
?GridView1.Columns.Count
0
将列添加到gridview后。
?GridView1.Columns.Count
1
答案 2 :(得分:1)
可能是因为你没有在页面上放置gridView? 像这样:PlaceHolder1.Controls.Add(grdExport)
答案 3 :(得分:0)
相反?grdExport.Columns.Count。在设计时在gridview中添加列集合时获得的计数。 你必须使用 grdExport.Rows [0] .Cells.Count
答案 4 :(得分:0)
绑定数据后将设置GridViewColumn列。因此,只需显示MessageBox.Show
即可找到列数。
grdExport.AutoGenerateColumns = false;
MessageBox.Show(grdExport.Columns.Count.ToString());