[英]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
; 那么頁面中將不會顯示任何列。
檢查一下:
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.