我有一个Repeater
嵌套在GridView
内。在RowDataBound
的{{1}}事件中,我设置GridView
(基于行的列之一),然后绑定DataSource
。这适用于初始加载,但我需要能够动态地向Repeater
添加新项目。
我将一个项目附加到Repeater
,将其保存到DataSource
,并且我通常使用方法调用绑定,我绑定到保存到ViewState
的对象。 ViewState
反映了更改,但页面没有。
我错过了什么?我在另一个没有嵌套的页面上有完全相同的设置,它可以很好地工作。
DataSouce
答案 0 :(得分:1)
我最终通过完全删除使用ViewState
来解决问题,但我认为我的临时DataSource
会在postback
之间丢失。我最终选择了一个完美的班级variable
。我似乎没有正确理解postback
期间发生的事情。
答案 1 :(得分:0)
我认为问题是你没有重新绑定Repeater
。您说您更改了绑定方式以查看ViewState
对象,但实际上是否触发了Bind
?听起来你不是,页面只是重新加载控件的ViewState
存储的当前数据。
确保明确调用Repeaters
绑定事件,确保它正在反弹。
编辑:我怀疑在您可能需要重新绑定GridView
而不仅仅是Repeater
时可能会有一些事情要做。
答案 2 :(得分:0)
首先,您不应该在ViewState中存储数据源。这几乎是你可以把它放在最糟糕的地方。
至于你的问题,我建议在将新项目添加到转发器时重新绑定GridView,或者在保存新记录并在那里重新绑定它的事件中找到转发器。