我遇到的问题是:我有一个带有列表对象的GridView作为其数据源,它绑定没有问题。我有一个DropDownList,它有事件SelectedIndexChanged
,在这个事件中,我添加了一个新的对象到列表中,添加后我想做GridView1.Databind()
所以新对象出现在GridView中。
但这不起作用,在我执行GridView1.Databind()
后,GridView中的数据丢失了。它甚至显示EmptyDataText
,但如果我刷新页面,则会显示所有内容。此外,DropDownList使用对象列表作为DataSource,并且应该使用DropDownList1.Databind()
,但它也不起作用。它在DataBinding之后具有相同的数据,我至少更正DropDownList所做的就是设置DropDownList again manually.DataTextField = object.attribute1
和DropDownList.DataValueField = object.attribute2
。但是由于GridView我遇到困难,有人可以解释方法DataBind
如何与对象列表一起工作吗?
答案 0 :(得分:1)
首先刷新绑定到列表集gridView.DataSource属性的asp:GridView
。
gridView.DataSource = mylist;
gridView.DataBind();
对于非数据库数据,这意味着列表本身必须保存在会话变量或ViewState中。
答案 1 :(得分:0)
我记得很久以前就有这个问题了。我猜测问题是你没有在UpdatePanel中使用GridView。
如果是这种情况,GridView将不会刷新并立即显示更改。关于下拉列表有一些棘手(我认为它也必须在面板中),但我相信你可以通过在UpdatePanel上进行一些快速搜索来解决这个问题。