Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么GridView的列计数为0_C#_Asp.net_Gridview - Fatal编程技术网

C# 为什么GridView的列计数为0

C# 为什么GridView的列计数为0,c#,asp.net,gridview,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(); 现在问题出现在即时窗口中,当我检查时,

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

它显示
counts=0
,因为默认情况下,如果添加手动列,则自动生成的列为true,它将显示列计数

如果写入
grdExport.AutoGenerateColumns=false
;然后在页面中不会呈现任何列。

它显示
计数=0
,因为默认情况下,如果添加手动列,则自动生成的列为true,然后它将显示列计数

如果写入
grdExport.AutoGenerateColumns=false
;那么页面中将不会呈现任何列。

而是?grdExport.columns.Count。此计数是在设计时在gridview中添加列集合时获得的。 你必须使用
改为grdExport.Rows[0]。Cells.Count

?grdExport.Columns.Count。此计数是在设计时在gridview中添加列集合时获得的。 你必须使用
grdExport.Rows[0].Cells.Count将在绑定数据后设置GridViewColumn列。因此,只需显示一个
MessageBox.show
即可找到列计数

grdExport.AutoGenerateColumns = false;
MessageBox.Show(grdExport.Columns.Count.ToString());

绑定数据后将设置GridViewColumn列。因此,只需显示一个
MessageBox.show
即可找到列计数

grdExport.AutoGenerateColumns = false;
MessageBox.Show(grdExport.Columns.Count.ToString());

选中此项:

Columns属性(集合)用于显式存储所有 在GridView控件中呈现的声明列字段。你 还可以使用Columns集合以编程方式管理 列字段的集合

如果您在网格中添加的列中有更多列,那么它将显示您添加的列的计数,而不是自动生成的列

如果显示自动生成的列,则它将显示0。 选中此标记:

 <asp:GridView ID="GridView1" runat="server">
            <Columns>
                <asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID" />
            </Columns>
        </asp:GridView>
将列添加到gridview后

?GridView1.Columns.Count
1

选中此项:

Columns属性(集合)用于显式存储所有 在GridView控件中呈现的声明列字段。你 还可以使用Columns集合以编程方式管理 列字段的集合

如果您在网格中添加的列中有更多列,那么它将显示您添加的列的计数,而不是自动生成的列

如果显示自动生成的列,则它将显示0。 选中此标记:

 <asp:GridView ID="GridView1" runat="server">
            <Columns>
                <asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID" />
            </Columns>
        </asp:GridView>
将列添加到gridview后

?GridView1.Columns.Count
1

可能是因为您没有在页面上放置gridView?
像这样:占位符1.Controls.Add(grdExport)

可能是因为您没有在页面上放置gridView?
如下所示:placeholder 1.Controls.Add(grdExport)

自动生成的绑定列字段不会添加到Columns集合中。如果需要计数,它将与分配的源表相同,16@V4Vendetta谢谢。我不知道..为GridView设置AutogeneratedColumns=true自动生成的绑定列字段不会添加到Columns集合中。如果需要计数,它将与分配的源表相同,16@V4Vendetta谢谢。我不知道..为GridView设置autogeneatedcolumns=true您的解决方案有助于获取行中的数据,而不是标题中的数据。无论如何,谢谢。标题“HeaderRow.Cells.Count”就在这里。您的解决方案有助于获取行中的数据,而不是标题中的数据。不管怎样,谢谢。标题“HeaderRow.Cells.Count”就在这里。