我在一次回发中从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();
}
答案 0 :(得分:0)
您的代码示例显示您运行了不必要的for
循环以删除第0列。如果您只打算删除第一列,我会删除此循环。使用RemoveAt(0)
将始终引用您的第一列,一旦您删除了Columns[0]
,您的下一列将变为Columns[0]
,这将剥离您的列。
此外,您要为 gridview1 GridView
指定数据源,然后尝试DataBind()
单独的GridView
, gridview 强>
如果您想隐藏列,我建议您这样做:
gridview1.Columns[0].Visible = false;
其中0是您的列索引。