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 – 将单选按钮与相应的标签对齐
- asp.net – MVC4上的_layout.cshtml的@model?
- asp.net-mvc – 将我的DbContext包装在Unit of Work类中是个
- asp.net – 如何从代码隐藏中清除所有表单字段?
- asp.net:将updatepanel中的控件排除在执行异步回发之外
- asp.net – 防止百分比字符转换
- asp.net – aspnet_compiler找到错误版本的System.Web.WebP
- asp.net – ELMAH是否默认实施并启用了防洪功能?
- asp.net-mvc – 创建新控制器 – 运行所选代码生成器时出错
- asp.net – 如何处理在IIS上运行的网站的计划任务?
- asp.net – 为什么HttpContext.Current.User.Ide
- ASP.NET MVC jQuery自动完成HtmlHelper
- asp.net – 停止从域(也称为“无Cookie域”)设置
- 嵌套的ASP.NET’应用程序’在IIS内继承父配置值?
- asp.net-mvc – 如何在ASP.NET MVC中存根User.Id
- 如何使用asp.net web.sitemap和菜单控件与bootst
- asp.net-core – 删除继承的ASP.NET Core appset
- asp.net – GridView中的DropDownList SelectedI
- asp.net – 它是老式的使用id的查询字符串吗?
- asp.net – 过程或函数“”需要参数“”,这是未提