删除列后绑定GridView

时间:2012-01-18 10:15:50

标签: asp.net gridview asp.net-4.0

我在一次回发中从GridView中删除列并在第二次回发时绑定它。 在页面被渲染后绑定后,它不会显示我的GridView。

当我使用ASP.NET 3.5时,相同的代码段正在工作,但在4.0中它不显示GridView。谁能告诉我为什么会出现这种情况?

提前致谢。

.aspx代码:

<asp:GridView>
<Columns>
<asp:BoundField HeaderText="StudName" DataField="Name" />
<asp:BoundField HeaderText="StudAddress" DataField="Address" />
<asp:BoundField HeaderText="StudPhNo" DataField="PhNo" />
</Columns>
</asp:GridView>

服务器端代码:

Button1_Click(object sender, EventArgs e)
{
   //removes all columns ffrom grid.
    for(int i=0;i<gridview1.Columns.Count;i++)
        gridview1.Columns.RemoveAt(0);
}



Button2_Click(object sender, EventArgs e)
{
    gridview1.DataSource = StudList;
    //corrected name of grid
    gridview1.DataBind();
}

1 个答案:

答案 0 :(得分:0)

您的代码示例显示您运行了不必要的for循环以删除第0列。如果您只打算删除第一列,我会删除此循环。使用RemoveAt(0)将始终引用您的第一列,一旦您删除了Columns[0],您的下一列将变为Columns[0],这将剥离您的列。

此外,您要为 gridview1 GridView指定数据源,然后尝试DataBind()单独的GridView gridview

如果您想隐藏列,我建议您这样做:

gridview1.Columns[0].Visible = false;

其中0是您的列索引。