我在Repeater内嵌套了一个GridView。在RowDataBoundGridView事件上,我设置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/

10-13 05:57