2012-01-18 9 views
2

GridViewから1つのポストバックで列を削除し、2番目のポストバックにバインドします。 ページがレンダリングされるときにバインドした後、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

+0

ここでは正確に何をしようとしていますか?すべての列を削除しようとしていますか(GridViewを非表示にしますか?) – Brissles

+0

はい、しかし、私はなぜsciodeセグメントasp.net 2.0で私のグリッドを表示し、asp.net 4.0で表示されない理由を知っているinrested –

答えて

0

あなたのコードサンプルは、列0を削除する必要がforループを実行している示し、あなただけつもりなら、私はこのループを削除します最初の列を削除します。 RemoveAt(0)を使用すると常に最初の列が参照されます。Columns[0]を削除すると、次の列がColumns[0]になります。これで列が削除されます。

また、あなたはあなたのgridview1GridViewのためのデータソースを指定していて、その後、DataBind()別々GridViewGridViewのにattemping。

あなたは隠す列にしたい場合は、私はあなたがこれを行うことをお勧めしたい:

0は、あなたの列インデックスです
gridview1.Columns[0].Visible = false; 

+0

私のコードを訂正しました。 –

関連する問題