1

我正在开发我的第一个 ASP.Net Web 应用程序,我学到了很多东西,但是我有一个我无法弄清楚的问题。

我有一个带有集合作为数据源的 GridView,如果我将 GridView 绑定到集合,它可以正常工作:

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