【问题标题】:Why column count is 0 for GridView为什么 GridView 的列数为 0
【发布时间】:2012-03-22 06:43:22
【问题描述】:

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

【问题讨论】:

  • 自动生成的绑定列字段不会添加到 Columns 集合中。 Hence the count would be zero
  • 如果您想要计数,它将与您分配的源表相同,16
  • @V4Vendetta 非常感谢。我不知道..
  • 为网格视图设置 autogeneatedcolumns=true

标签: c# asp.net gridview


【解决方案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】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        改为 ?grdExport.Columns.Count。当您在设计时在 gridview 中添加列集合时,您会获得此计数。 你必须使用 grdExport.Rows[0].Cells.Count

        【讨论】:

        • 您的解决方案有助于获取行中的数据,而不是标题。还是谢谢。
        • 对于标题“HeaderRow.Cells.Count”是有的。
        【解决方案5】:

        您的 GridViewColumn 列将在绑定数据后设置。因此,只需显示 MessageBox.Show 即可查找列数。

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-05-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-04-05
          • 2020-03-19
          • 1970-01-01
          相关资源
          最近更新 更多