asp.net - 中继器 View 状态不刷新输入

标签 asp.net .net viewstate

我有一个禁用了 ViewStateRepeater 和几个启用了 ViewState 的输入控件。在我根据各种选择回发并重新绑定(bind)数据后,INPUT 控件没有更新。它们保持回发前相同的状态。

详细说明我的过滤器是否为 X 并且我有两个输入,第一个输入处于状态 X1,第二个输入处于状态 X2。如果我将过滤器切换到 Y,输入仍将分别处于状态 X1 和 X2。

打开ViewState修复了这个问题。我的问题是为什么?我排除了大部分代码,因为它是样板。您可以将整数列表绑定(bind)到Repeater,然后如果整数是奇数或偶数并将Checkbox设置为该值,它将像我的样板代码一样运行/确实如此。

下面是伪代码。

<asp:repeater EnableViewState="false">
   <HeaderTemplate></HeaderTemplate>
   <ItemTemplate>
       <asp:checkbox runat="server" id="foo" EnableViewState="True">
   </ItemTemplate>
</asp:repeater>

最佳答案

EnableViewState 属性将覆盖您尝试启用的任何子控件。

参见MSDN :

Gets or sets a value indicating whether the server control persists its view state, and the view state of any child controls it contains, to the requesting client.

The ViewStateMode property for the control is set to Enabled or inherits the Enabled setting.

因此,将 RepeaterEnableViewState 属性设置为 false 会强制所有子控件也设置为 false,无论您如何在控制级别表明您希望它为true

关于asp.net - 中继器 View 状态不刷新输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25288145/

相关文章:

c# - 表单提交后启用文本框和按钮 ASP.NET MVC 4

c# - 未初始化的浮点变量,重新定义不确定的行为

jsf-2 - 通过客户端状态保存防止 JSF2 中的 CSRF

asp.net - viewstate MAC 验证失败。

asp.net - 完全删除特定页面的 ViewState

c# - 带有 ASP.NET 网站的 NUnit

asp.net - Visual Studio 2012 - 数据库发布向导已停止?

c# - ASP.NET和KnockoutJS中如何设置ko.observable的默认值为控件本身的默认值?

c# - 在 C# 中构建 NPAPI 插件

c# - 泛型参数的属性有什么用?