楼上的,还是不行! 选中一项后,再使用客户端JS事件,设置为DISABLED。再点击按钮,在服务端显读取值。读到的是空值,且界面上选项被清掉了,没有一个选中。 var v = document.getElementsByName("<%=RadioButtonList1.ClientID %>"); for (i = 0; i < v.length; i++) v[i].disabled = "disabled";服务端读取: TextBox1.Text = RadioButtonList1.SelectedValue;
简单的处理办法就是不要设Enable属性,自己给RadioButton添加attribute,xxx.Attributes["disabled"]="disabled";这样
用js读取后台代码,获取radiobutton属性Enabled为true;
以下链接是js调用后台代码,你可以借鉴下:
http://blog.csdn.net/gaofang2009/archive/2009/09/08/4531389.aspx
这个方法也不行,
一个按钮中,激发事件:
RadioButton2.Checked = true;
RadioButton1.Checked = false;
RadioButton3.Checked = false;
RadioButton1.Attributes["disabled"] = "disabled";
RadioButton2.Attributes["disabled"] = "disabled";
RadioButton3.Attributes["disabled"] = "disabled";另一个按钮:
TextBox1.Text = RadioButton1.Checked.ToString() + RadioButton2.Checked.ToString() + RadioButton3.Checked.ToString();
结果是:FalseFalseFalse并且,界面显示上,全部未选中
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事件中。
<div>
<asp:RadioButton ID="RadioButton1" runat="server" Enabled=false GroupName="c" Text="1" />
<asp:RadioButton ID="RadioButton2" runat="server" Enabled=false GroupName="c" Text="2" />
<asp:RadioButton ID="RadioButton3" runat="server" Enabled=false GroupName="c" Text="3" />
<input type=button value="启用RadioButton" />
<input type=submit value="Submit" />
</div>
<script type="text/javascript" src="JS/jquery-1.4.2.js">
</script>
<script type="text/javascript">
$(function() {
$("input[type='button'][value='启用RadioButton']").click(function() {
$("input[type='radio']").attr("disabled", "");
});
});
</script>
protected void Page_Load(object sender, EventArgs e)
{
if (Request["c"] != null)
{
foreach (Control c in this.form1.Controls)
{
if (c is RadioButton)
{
RadioButton radio = c as RadioButton;
if (radio.ID == Request["c"].ToString())
{
Response.Write(radio.Text);
break;
}
}
}
}
}
希望对lz有用