嵌套在GridView中的数据中心转发器不会更新

时间:2011-10-28 16:25:38

标签: c# asp.net data-binding repeater databound-controls

我有一个Repeater嵌套在GridView内。在RowDataBound的{​​{1}}事件中,我设置GridView(基于行的列之一),然后绑定DataSource。这适用于初始加载,但我需要能够动态地向Repeater添加新项目。

我将一个项目附加到Repeater,将其保存到DataSource,并且我通常使用方法调用绑定,我绑定到保存到ViewState的对象。 ViewState反映了更改,但页面没有。

我错过了什么?我在另一个没有嵌套的页面上有完全相同的设置,它可以很好地工作。

DataSouce

3 个答案:

答案 0 :(得分:1)

我最终通过完全删除使用ViewState来解决问题,但我认为我的临时DataSource会在postback之间丢失。我最终选择了一个完美的班级variable。我似乎没有正确理解postback期间发生的事情。

答案 1 :(得分:0)

我认为问题是你没有重新绑定Repeater。您说您更改了绑定方式以查看ViewState对象,但实际上是否触发了Bind?听起来你不是,页面只是重新加载控件的ViewState存储的当前数据。

确保明确调用Repeaters绑定事件,确保它正在反弹。

编辑:我怀疑在您可能需要重新绑定GridView而不仅仅是Repeater时可能会有一些事情要做。

答案 2 :(得分:0)

首先,您不应该在ViewState中存储数据源。这几乎是你可以把它放在最糟糕的地方。

至于你的问题,我建议在将新项目添加到转发器时重新绑定GridView,或者在保存新记录并在那里重新绑定它的事件中找到转发器。