2012-01-18 140 views
2

我在一次回发中从我的GridView移除列并在第二次回发时绑定它。 页面呈现后进行绑定后,它不会显示我的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

你能告诉我们一些代码吗? – Brissles 2012-01-18 10:19:42

+0

你究竟想在这里做什么?你是否想要删除所有列(使GridView不可见)? – Brissles 2012-01-18 13:05:39

+0

是的,但我很想知道为什么thi scode段在asp.net 2.0中显示我的网格,并且不显示在asp.net 4.0中 – 2012-01-19 05:30:53

回答

0

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

此外,你指定数据源为您gridview1GridView,然后attemping到DataBind()一个单独的GridViewgridview的

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

gridview1.Columns[0].Visible = false; 

,其中0为您的列索引。

+0

更正了我的代码谢谢。 – 2012-01-18 13:02:22