我的Repeater
已禁用ViewState
,并且启用了ViewState
的多个输入控件。在我根据各种选择回发和重新绑定数据后,INPUT
控件没有更新。他们保持了与回发前相同的状态。
详细说明我的过滤器是否为X并且我有两个输入,第一个在状态X1,第二个在状态X2。如果我将滤波器切换为Y,输入仍将分别处于状态X1和X2。
转动ViewState
以解决此问题。我的问题是为什么?我排除了大部分代码,因为它是锅炉板。您可以将整数列表绑定到Repeater
,然后如果整数是奇数或偶数并将Checkbox
设置为该值,它将像我的样板代码那样起作用。
下面是伪代码。
<asp:repeater EnableViewState="false">
<HeaderTemplate></HeaderTemplate>
<ItemTemplate>
<asp:checkbox runat="server" id="foo" EnableViewState="True">
</ItemTemplate>
</asp:repeater>
答案 0 :(得分:2)
EnableViewState
属性将覆盖您尝试启用的所有子控件。
请参阅MSDN:
获取或设置一个值,该值指示服务器控件是否仍然存在 它的视图状态,以及它包含的任何子控件的视图状态, 致请求客户。
和
控件的ViewStateMode属性设置为Enabled或继承Enabled设置。
因此,将Repeater
的{{1}}属性设置为EnableViewState
会强制所有子控件也设置为false,无论您在控件级别指示你希望它是false
。