三个服务器控件radiobutton,在服务端设置其Enabled为false. 这时三个单选项都灰掉了.
此时又想在客户端通过JS将三个单选按钮变为可选. 且选项可以在服务端获取!
请问该如何实现!?
这样吧,添加一个安扭,然后,单击,时设置Enabled为true,然在服务器读取相应选项值。。。
貌似Enable设为false之后服务器就不从客户端取值了,以前用TextBox就碰到过这种情况。
简单的处理办法就是不要设Enable属性,自己给RadioButton添加attribute,xxx.Attributes["disabled"]="disabled";这样
对呀! 我的目的在服务端设置了CHECK属性后,就不允许用户在客户端选择! 所以全灰掉!
DISABLED 与 CHECK自属性有冲突吗?
楼上的,还是不行!
选中一项后,再使用客户端JS事件,设置为DISABLED。再点击按钮,在服务端显读取值。读到的是空值,且界面上选项被清掉了,没有一个选中。
var v = document.getElementsByName("<%=RadioButtonList1.ClientID %>");
for (i = 0; i < v.length; i++)
v[i].disabled = "disabled";
服务端读取:
TextBox1.Text = RadioButtonList1.SelectedValue;
刚查了一下,之前我想当然了。
以前用TextBox的时候用的是readonly而不是disabled,如果设为disabled是不会提交的。而radio没有readonly属性,所以只能曲线救国了。2个方法,一个是赋值给hiddenfield,一个是javascript控制,网上有介绍。
另外在后台给RadioButton设disabled属性还要注意的是,RadioButton实际上是2个html元素组成,一个sapn里包含了一个radio,直接用Attributes赋值是赋给外面的sapn,要用InputAttributes["disabled"]="disabled"这样。
还有赋的值是没有保存状态的,每次postback之后要重新给InputAttributes赋值,而不仅仅是在Button事件中。
今天偶然发现Page.Form.SubmitDisabledControls这个属性,默认为false,可以设置为true。
希望对lz有用
楼上这种方法有一点点“变态”(我们常说的一种话,不是说人。呵。。。)!我想绝对不可能要这么做! 应该可以比较直接。
你应该使用Radiobuttonlist控件,单选按钮不是成组的话,不能取消选择的
来源:英超直播