GridView.Databind()不使用对象列表

时间:2012-09-18 17:55:03

标签: c# asp.net list object gridview

我遇到的问题是:我有一个带有列表对象的GridView作为其数据源,它绑定没有问题。我有一个DropDownList,它有事件SelectedIndexChanged,在这个事件中,我添加了一个新的对象到列表中,添加后我想做GridView1.Databind()所以新对象出现在GridView中。

但这不起作用,在我执行GridView1.Databind()后,GridView中的数据丢失了。它甚至显示EmptyDataText,但如果我刷新页面,则会显示所有内容。此外,DropDownList使用对象列表作为DataSource,并且应该使用DropDownList1.Databind(),但它也不起作用。它在DataBinding之后具有相同的数据,我至少更正DropDownList所做的就是设置DropDownList again manually.DataTextField = object.attribute1DropDownList.DataValueField = object.attribute2。但是由于GridView我遇到困难,有人可以解释方法DataBind如何与对象列表一起工作吗?

2 个答案:

答案 0 :(得分:1)

首先刷新绑定到列表集gridView.DataSource属性的asp:GridView

 gridView.DataSource = mylist;
 gridView.DataBind();

对于非数据库数据,这意味着列表本身必须保存在会话变量或ViewState中。

答案 1 :(得分:0)

我记得很久以前就有这个问题了。我猜测问题是你没有在UpdatePanel中使用GridView。

如果是这种情况,GridView将不会刷新并立即显示更改。关于下拉列表有一些棘手(我认为它也必须在面板中),但我相信你可以通过在UpdatePanel上进行一些快速搜索来解决这个问题。