簡體   English   中英

為什么GridView的列數為0

[英]Why column count is 0 for 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?

它顯示counts = 0因為默認情況下自動生成的列為true如果添加手動列,則它將顯示列計數。
如果您編寫grdExport.AutoGenerateColumns = false ; 那么頁面中將不會顯示任何列。

GridView.Columns屬性

檢查一下:

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

可能是因為您沒有在頁面上放置gridView嗎? 像這樣:PlaceHolder1.Controls.Add(grdExport)

而是?grdExport.Columns.Count。 在設計時在gridview中添加列集合時,您將獲得此計數。 您必須使用grdExport.Rows [0] .Cells.Count

綁定數據后將設置GridViewColumn Column。 因此,只需顯示MessageBox.Show即可找到列數。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM