asp.net – 如何从View中获取asp:CheckBox? (__ControlsRequir
发布时间:2020-12-16 03:51:48 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试构建一个简单的Asp.Net网站,列出一些文件.需要检查每个文件.到现在为止还挺好.我在web.config中禁用了ViewState,但我仍然以那里的视图值结束.使用ViewStateDecoder 2应用程序解码后,我发现我的ViewState看起来像这样: ?xml version="1.0" encodin
我正在尝试构建一个简单的Asp.Net网站,列出一些文件.需要检查每个文件.到现在为止还挺好.我在web.config中禁用了ViewState,但我仍然以那里的视图值结束.使用ViewStateDecoder 2应用程序解码后,我发现我的ViewState看起来像这样:
<?xml version="1.0" encoding="utf-16"?> <controlstate> <HybridDictionary> <DictionaryEntry> <String>__ControlsRequirePostBackKey__</String> <ArrayList> <String>ctl00$ContentPlaceHolder1$DirectoryLister1$ctl01$d__bin</String> <String>ctl00$ContentPlaceHolder1$DirectoryLister1$ctl02$d__obj</String> <String>ctl00$ContentPlaceHolder1$DirectoryLister1$ctl02$ctl00$ctl00$d__Debug</String> <String>ctl00$ContentPlaceHolder1$DirectoryLister1$ctl02$ctl00$ctl00$ctl00$ResGen_read_1_tlog</String> <String>ctl00$ContentPlaceHolder1$DirectoryLister1$ctl02$ctl00$ctl00$ctl00$ResGen_write_1_tlog</String> <String>ctl00$ContentPlaceHolder1$DirectoryLister1$ctl03$d__Properties</String> <String>ctl00$ContentPlaceHolder1$DirectoryLister1$ctl03$ctl00$AssemblyInfo_cs</String> <String>ctl00$ContentPlaceHolder1$DirectoryLister1$ctl04$d____UpgradeReport__Files</String> <String>ctl00$ContentPlaceHolder1$DirectoryLister1$ctl04$ctl00$UpgradeReport_css</String> <String>ctl00$ContentPlaceHolder1$DirectoryLister1$ctl04$ctl00$UpgradeReport_xslt</String> <String>ctl00$ContentPlaceHolder1$DirectoryLister1$ctl04$ctl00$UpgradeReport__Minus_gif</String> <String>ctl00$ContentPlaceHolder1$DirectoryLister1$ctl04$ctl00$UpgradeReport__Plus_gif</String> </ArrayList> </DictionaryEntry> </HybridDictionary> </controlstate> 我正在渲染的每个复选框都在其中!如何从中取出复选框?没有一个框触发PostBack.我已经尝试过fileCheckBox.AutoPostBack = false;,但它没有解决任何问题. 所以我的问题是:如何阻止我的复选框在ViewState中注册回发信息? 这是我的UserControl中的代码,它为每个文件生成一个CheckBox: CheckBox fileCheckBox = new CheckBox(); fileCheckBox.AutoPostBack = false; fileCheckBox.CssClass = "file " + GetExtension(file.Name); fileCheckBox.ID = MakeId(file.Name); fileCheckBox.Checked = true; fileCheckBox.Text = file.Name; children.Controls.Add(fileCheckBox); 禁用控件的ViewState也不起作用. 理论 我怀疑控制是通过做一个Page.RegisterRequiresPostBack等.这可以预防吗? 解决方法
CheckBox(也是TextBox和DropDownList)不仅使用ViewState来保存它们的值.他们实现IPostBackDataHandler以保持其在PostBack上的值.你必须找到自己的解决方案来解决这个问题,因为禁用ViewState对你没有帮助.
有关详细信息,请参阅link. 但是,要使控件不使用ViewState,可以对从System.Web.UI.Control派生的每个控件使用EnableViewState =“false”. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – ASP.NET MVC QueryString默认覆盖提供的值?
- asp.net – 不支持每种类型的多个对象集.对象集’Applicati
- asp.net – 会话状态在此上下文中不可用
- asp.net – 是否可以使用具有强类型资源的LabelFor,Validat
- asp.net – 对齐和填充为asp:CheckBoxList
- asp.net – 超过了JavaScriptSerializer.MaxJsonLength.处理
- asp.net-mvc – FormsAuthentication.RedirectFromLoginPag
- asp.net – ASP .NET MVC 3.会话过期太快了
- asp.net – 我可以在global.asax.cs中访问虚拟目录名吗?
- asp.net – 普通Web API或Web API和OData?