使用JavaScript脚本无法直接改变Asp.net中Checkbox控件的Enable属性的解决方法
2010-01-06 16:05
966 查看
今天工作中遇到个小问题,情况如下,当我在后台页面中设置Checkbox的Enable的值为false时,我在前端页面中使用脚本(chk.disabled = false),无法改变disabled的值为false,代码如下:
前台代码:
代码
只有加上上面高亮显示的代码。
方案二:
使用方案一的话,就必须添加一条额外的改变父节点disabled属性的语句,当要修改的地方比较多的时候,就比较麻烦了,而且也不符合一般的代码逻辑,有冗余的代码。有没有其他更简练的办法呢?有~,我们只需要修改后台代码,如下:
也就是,我们不改变Checkbox的Enable属性,而是通过InputAttributes中的属性设置,改变了Checkbox输出到客户端的Html内容,如下:
之前“冗余的”父节点,现在没有了。
关于Checkbox的InputAttributes属性的详细信息可以参考以下链接。
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.checkbox.inputattributes.aspx
代码:http://files.cnblogs.com/owen-zhang/CheckboxClientDisabled.rar
前台代码:
代码
<script type="text/javascript"> function foo() { var chk = document.getElementById("<%=chkBlog.ClientID %>"); if (chk.disabled) { chk.parentNode.disabled = false; chk.disabled = false; } else { chk.parentNode.disabled = true; chk.disabled = true; } } </script>
只有加上上面高亮显示的代码。
方案二:
使用方案一的话,就必须添加一条额外的改变父节点disabled属性的语句,当要修改的地方比较多的时候,就比较麻烦了,而且也不符合一般的代码逻辑,有冗余的代码。有没有其他更简练的办法呢?有~,我们只需要修改后台代码,如下:
protected void Page_Load(object sender, EventArgs e) { this.chkBlog.InputAttributes.Add("disabled", "disabled"); }
也就是,我们不改变Checkbox的Enable属性,而是通过InputAttributes中的属性设置,改变了Checkbox输出到客户端的Html内容,如下:
<input id="chkBlog" type="checkbox" name="chkBlog" disabled="disabled" /> <label for="chkBlog">http://owen-zhang.cnblogs.com</label>
之前“冗余的”父节点,现在没有了。
关于Checkbox的InputAttributes属性的详细信息可以参考以下链接。
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.checkbox.inputattributes.aspx
代码:http://files.cnblogs.com/owen-zhang/CheckboxClientDisabled.rar
相关文章推荐
- 使用JavaScript脚本无法直接改变Asp.net中Checkbox控件的Enable属性的解决方法
- 使用JavaScript脚本无法直接改变Asp.net中Checkbox控件的Enable属性的解决方法
- 使用JavaScript脚本无法直接改变Asp.net中Checkbox控件的Enable属性的解决方法
- 关于asp.net网站发布后,使用登录控件和注册控件时出现“数据库只读,无法进行数据更新”的解决方法
- 常量,字段,构造方法 调试 ms 源代码 一个C#二维码图片识别的Demo 近期ASP.NET问题汇总及对应的解决办法 c# chart控件柱状图,改变柱子宽度 使用C#创建Windows服务 C#服务端判断客户端socket是否已断开的方法 线程 线程池 Task .NET 单元测试的利剑——模拟框架Moq
- 绝对酷,如何解决asp.net中javascript脚本的问题(使用服务器控件执行客户端脚本)
- 绝对酷,如何解决asp.net中javascript脚本的问题(使用服务器控件执行客户端脚本)
- ASP.NET中无法使用验证控件解决方法
- asp.net中的服务器端控件 textbox 设为只读属性后无法获取JS给其赋的值解决办法
- ASP.NET在IIS上部署使用Oracle数据库无法连接数据库解决方法
- 工作中的问题解决 -- (win2003 asp.net) Session和带页面回传的方法无法正常使用解决方案
- 无法识别的属性“type”+IIS没有Asp.net配置选项的解决方法
- asp.net中的服务器端控件 textbox 设为只读属性后无法获取 javascript给其赋的值
- 无法识别的属性“type”+IIS没有Asp.net配置选项的解决方法(转)
- 在ASP.NET中使用JavaScript脚本的方法
- ASP.NET在IIS上部署使用Oracle数据库无法连接数据库解决方法
- asp.net用户控件中使用相对路径的解决方法--------图片路径问题(用户控件、图片路径),ResolveUrl
- ASP.NET中CheckBoxList复选框列表控件详细使用方法
- 如何在ASP.NET中制作Web用户自定义控件,并在aspx页面中使用它的方法和属性?
- 无法识别的属性“type”+IIS没有Asp.net配置选项的解决方法