ASP.Net Checkbox值在回发错误?
发布时间:2020-12-16 00:41:36 所属栏目:asp.Net 来源:网络整理
导读:我们有一个初始禁用和检查的复选框。然后在客户端通过javascript启用它。如果用户然后取消选中该框并按下按钮来调用回发,则复选框的状态将保持在服务器端的检查状态。这显然是不良行为。这是一个例子。 %@ Page Language="C#" AutoEventWireup="true" CodeB
我们有一个初始禁用和检查的复选框。然后在客户端通过javascript启用它。如果用户然后取消选中该框并按下按钮来调用回发,则复选框的状态将保持在服务器端的检查状态。这显然是不良行为。这是一个例子。
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="testcb.aspx.cs" Inherits="ESC.testcb" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <script type="text/javascript"> function buttonClick() { var cb = document.getElementById('<%= CheckBox1.ClientID %>'); cb.disabled = false; cb.parentNode.disabled = false; } </script> <div> <asp:CheckBox ID="CheckBox1" runat="server" Checked="true" Enabled="false" /> <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="buttonClick(); return false;" /> <asp:Button ID="Button2" runat="server" Text="Button2" OnClick="button2Click" /> </div> </form> </body> </html> 和服务器端代码: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace ESC { public partial class testcb : System.Web.UI.Page { protected void Page_Load(object sender,EventArgs e) { } protected void button2Click(object sender,EventArgs e) { string h = ""; } } } 所以我们在“string h”行中断,并检查CheckBox1.Checked的值。这是真的,即使它在表单上未被选中。 解决方法
这是ASP.NET的一个已知问题 – 由于某些原因ASP.NET将不会更新回发的复选框,如果在页面加载期间被禁用并且没有检查回发。我不知道为什么是这样的 – 如果您在默认情况下取消选中该复选框,并选择它,则该值在服务器上正确更改。
解决方法是将一个隐藏的字段添加到表示复选框状态的页面中,然后将该字段的值更新为“ON”或“OFF”,例如,每当点击复选框。 然后在服务器上检查隐藏字段的值,而不是复选框本身,因为隐藏字段始终发布。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 在我的网站中添加HttpModule时出现“500内部服务
- asp.net-mvc – Visual Studio 2010未将.CSHTML(Razor View
- asp.net GridView寻呼机消失了!
- .net – DataAnnotations与IDataErrorInfo
- .net – 更新面板复制我的控件
- asp.net – Web API中的客户端证书和基于声明的身份
- asp.net-mvc – 从nopCommerce插件扩展Razor Partial View
- asp.net – 添加context.Response.Headers.Add(“Cache-Con
- 从按钮单击处理程序中的代码隐藏执行ASP.NET成员身份登录
- asp.net-mvc – ASP.NET MVC FileStreamResult不能按预期工
推荐文章
站长推荐
- asp.net-mvc – 使用Entity FrameWork保存更改/更
- asp.net-mvc – 如何在html.LabelFor中显示一些文
- asp.net-core – ASP.Net核心1.1 – 迁移失败
- asp.net-mvc-3 – 在MVC 3的浏览器选项卡中打开P
- asp.net-mvc – 所有请求获取HTTP错误401.2 – 未
- asp.net-mvc – 如何从对象HtmlAttributes中获取
- asp.net-mvc – 将我的DbContext包装在Unit of W
- asp.net-mvc-4 – autofac – 依赖注入IHttpModu
- asp.net – “无法在Web服务器上启动调试”MSVSM
- asp.net-mvc – 为什么我需要在asp.net mvc中部分
热点阅读