【发布时间】:2014-05-02 01:41:20
【问题描述】:
我正在尝试有条件地显示/隐藏 GridView 列。
我正在创建一个动态数据表,然后将其绑定到 GridView
稍后,在回帖中,我正在检查条件并希望显示/隐藏 GridView 的几列,但 Column.Count 始终为 0!
我的代码如下 - ASPX 页面
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
.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
}
不知道代码有什么问题
【问题讨论】:
-
你真正想要达到什么目的?您无法访问将
AutoGenerateColumns设置为true的列,但您可以通过GridView1.Rows[0].Cells[0].Text等访问所有单元格。 -
正如我所说,如果你唯一能得到的列数,你可以这样得到:
GridView1.Rows[0].Cells.Count; -
@FarhadJabiyev:如果他唯一想要的是列数,他不应该计算行的单元格,因为可能根本没有行会导致异常。相反,他应该使用
aDT.Columns.Count。 -
@TimSchmelter 是的,这是真的。但是,我认为他可能想要获取 Button_Click 方法之外的列数。他可以检查 GridView 是否包含任何行。
-
@FarhadJabiyev:但是如果网格不包含任何行,他就无法从第一行的单元格计数中获取列计数。所以检查没有帮助。但
aDT.Columns.Count始终有效。