我在Repeater
内嵌套了一个GridView
。在RowDataBound
的GridView
事件上,我设置DataSource
(基于行的一列),然后绑定Repeater
。这对于初始负载来说效果很好,但是我需要能够动态地向Repeater
添加新项目。
我将一个项目附加到DataSource
,将其保存到ViewState
,通常在使用方法调用进行绑定的地方,我绑定到保存在ViewState
的对象。 DataSouce
反映了更改,但是页面没有。
我想念什么?我在另一个页面上具有完全相同的设置,但没有嵌套,并且效果很好。
if (ViewState["RepeaterObj"]!=null)
{
rpt.DataSource=(IList<DataTransferObject>)ViewState["RepeaterObj"];
}
else
{
rpt.DataSource = controller.GetObj(param);
rpt.DataBind();
}
最佳答案
我最终通过完全取消使用ViewState
来解决了这个问题,尽管我认为我的临时DataSource
在整个postback
上都不会丢失,但事实并非如此。我最终选择了一个完美运行的类级variable
。看来我不太了解postback
期间发生了什么。
关于c# - 嵌套在GridView中的数据绑定(bind)转发器不会更新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7932040/