asp.net – 为什么DropDownList.SelectedValue依赖于viewstate?
|
如果我设置在我的页面上:EnableViewState =“true”ViewStateMode =“Disabled” – 然后 – Viewstate被禁用该页面(除非覆盖…) 然后,尝试读取(假设控件已经在最后一个转储中填充到屏幕,并且选择了一个值): MyDDL.SelectedValue将产生“” 这是因为禁用的viewstate: 但我的问题是在更高的层次上: >如果这一切都是关于一个表单值(我仍然可以从Request.Form [MyDDL.UniqueID]获得)) – 我们在谈论一个不需要任何东西来保存它的值的输入. 附: TextBox onchangeevent确实依赖于viewstate,虽然控件是一个输入(不需要viewstate) – 它保存文本的值,然后在postback时比较它.但是当您设置onchange事件(和autopostback)时,它只依赖于viewstate, 解决方法摘要:如果希望控件在没有ViewState的情况下运行,则需要在每个回发上填充/绑定Items集合.我建议在Page_Init事件(即OnInit方法)中进行.首先,我总是推荐这个这个真棒的文章:TRULY Understanding ViewState. SelectedValue不需要ViewState.看看DropDownList继承的ListControl的代码,我们看到代码: public virtual string SelectedValue
{
get
{
int selectedIndex = this.SelectedIndex;
if (selectedIndex >= 0)
return this.Items[selectedIndex].Value;
else
return string.Empty;
}
从此代码中删除的重要事项是必须填充Items列表以获取SelectedValue. 如果您使用ViewState,则Items集合将从ViewState中持久化到/加载,这允许SelectedValue属性在不重新绑定控件的情况下工作. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – MVC Razor HTML助手语法:Viewbag in Html.
- asp.net-mvc – 当绑定到ViewModel时如何更新模型?
- asp.net-mvc-3 – ASP.NET MVC 3,Razor Views和便携式区域
- asp.net-mvc – MVC 3 – Razor – 从模型打印值
- asp.net-core – 当返回null而不是控制器中设置的值时,Mode
- asp.net – 触发OWIN cookie中间件设置为被动身份验证模式的
- asp.net-mvc – Razor ViewEngine HTML.Checkbox方法创建一
- asp.net – 需要一个必须同时具有数字和字母字符的字符串的
- asp.net-mvc-3 – Ninject和OnePerRequestModule
- 如何使用asp.net中的Enter键提交表单
- asp.net-mvc – DropDownListFor在编辑视图上不重
- .net – 使用Elmah以编程方式记录错误:记录特定
- asp.net – Android C2DM获取(401)未经授权
- asp.net – 在Web.Config文件之外存储SMTP
- asp.net – 忽略在IIS中为代码400(错误请求)配置
- asp.net – 在.net应用程序中使用jquery禁用回发
- 如何在asp.net mvc中的html.actionlink中调用jav
- asp.net – 无法加载程序集“App_Web_kh7-x3ka”
- 在asp.net按钮中添加图像和文本
- 端到ASP.NET MVC的推荐方法
