use*_*838 3 c# datatable gridview
我试图有条件地显示/隐藏GridView列.
我正在创建一个动态DataTable,然后将其绑定到GridView
后来,在帖子后面,我正在检查条件并希望显示/隐藏GridView的几列,但Column.Count总是0!
我的代码如下 - ASPX页面
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
Run Code Online (Sandbox Code Playgroud)
.CS
protected void Button1_Click(object sender, EventArgs e)
{
DataTable aDT = new DataTable()
aDT = createDataTable(); //datatable has 21 columns
GridView1.DataSource = aDT;
GridView1.DataBind();
int temp = GridView1.Columns.Count; //always 0
}
Run Code Online (Sandbox Code Playgroud)
不确定代码有什么问题
如果将autogeneratedcolumns属性设置为,true 则计数将始终显示为0.
来自MSDN
Columns属性(集合)用于存储在GridView控件中呈现的所有显式声明的列字段.您还可以使用Columns集合以编程方式管理列字段的集合.
在您的情况下,您没有明确声明您的列.因此,如果GridView包含至少一行,则可以在Click方法内外获得列数:
单元格中的单元格数=列数.
if(GridView1.Rows.Count>0)
int temp = GridView1.Rows[0].Cells.Count;
Run Code Online (Sandbox Code Playgroud)
或者你可以通过@TimSchmelter评论的Click方法从DataTable获取计数:
int temp = aDT.Columns.Count
Run Code Online (Sandbox Code Playgroud)