1

初めての ASP.Net Web アプリケーションを開発しています。多くのことを学んでいますが、理解できない問題があります。

Collection を DataSource として持つ GridView があります。GridView を Collection にバインドすると、正常に動作します。

List<string> l = new List<string>();
l.Add("hello");
l.Add("world");

GridView1.DataSource = l;
GridView1.DataBind();

しかし、問題は、リストに新しい項目を追加すると、それがグリッドに表示されないことです。GridView1.DataBind(); を実行した後に変更されるのは正常であることを読みました。グリッドに追加されません。

いくつかの調査を行ったところ、ObservableCollection を使用してそれを実行できることがわかりました。ObservableCollection を GridView にバインドし、新しい項目を追加すると、GridView でも変更が発生するはずです。私はこれをしました:

ObservableCollection<string> o = new ObservableCollection<string>();
o.Add("hello");
o.Add("world");

GridView1.DataSource = o;
GridView1.DataBind();

そして、アプリを実行すると正常に動作し、データは表示されますが、ボタンを追加し、クリックイベントで新しい要素を ObservableCollection に追加しましたが、グリッドに表示されず、表示されません理由を知っている。

protected void Button1_Click(object sender, EventArgs e)
{
     o.Add("test");
}

誰かが私を助けてくれることを願っています。

ありがとう!!

4

0 に答える 0