为什么GridView的列数为0

时间:2012-03-22 06:43:23

标签: c# asp.net gridview

朋友们,我正在使用以下代码在我的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?

5 个答案:

答案 0 :(得分:1)

它显示counts = 0,因为默认情况下自动生成的列为true如果添加手动列,则它将显示列计数。
如果你写grdExport.AutoGenerateColumns = false;然后在页面中不会呈现任何列。

答案 1 :(得分:1)

GridView.Columns Property

检查一下:

  

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());