三个服务器控件radiobutton,在服务端设置其Enabled为false. 这时三个单选项都灰掉了.
此时又想在客户端通过JS将三个单选按钮变为可选. 且选项可以在服务端获取! 
请问该如何实现!? 

解决方案 »

  1.   

    这样吧,添加一个安扭,然后,单击,时设置Enabled为true,然在服务器读取相应选项值
      

  2.   

    貌似Enable设为false之后服务器就不从客户端取值了,以前用TextBox就碰到过这种情况。
    简单的处理办法就是不要设Enable属性,自己给RadioButton添加attribute,xxx.Attributes["disabled"]="disabled";这样
      

  3.   

    可以
    用js读取后台代码,获取radiobutton属性Enabled为true;
    以下链接是js调用后台代码,你可以借鉴下:
    http://blog.csdn.net/gaofang2009/archive/2009/09/08/4531389.aspx
      

  4.   


    这个方法也不行,
    一个按钮中,激发事件:
    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并且,界面显示上,全部未选中
      

  5.   

    你都是不可用得,当然会是false了啊。
      

  6.   

    对呀! 我的目的在服务端设置了CHECK属性后,就不允许用户在客户端选择! 所以全灰掉!
    DISABLED 与 CHECK自属性有冲突吗?
      

  7.   

    js  使用jquery!很容易滴!
      

  8.   

    document.getElementById('<% =RadioButton1.ClientID %>').disabled=true;
      

  9.   

    本帖最后由 net_lover 于 2010-09-17 12:34:49 编辑
      

  10.   

    楼上的,还是不行!
    选中一项后,再使用客户端JS事件,设置为DISABLED。再点击按钮,在服务端显读取值。读到的是空值,且界面上选项被清掉了,没有一个选中。
    var v = document.getElementsByName("<%=RadioButtonList1.ClientID %>");
           for (i = 0; i < v.length; i++)
            v[i].disabled = "disabled";服务端读取:
    TextBox1.Text = RadioButtonList1.SelectedValue;
      

  11.   

    开始一定要在后台去把radiobutton的Enable属性设为false吗?在前台可以吗?
      

  12.   

    无论怎么样,在前台设置为了diabled,在后台就取不到值!
      

  13.   

    到前台用hidden获取radiobutton的值。。再在后台Request.Form获取值不行么
      

  14.   


    刚查了一下,之前我想当然了。
    以前用TextBox的时候用的是readonly而不是disabled,如果设为disabled是不会提交的。而radio没有readonly属性,所以只能曲线救国了。2个方法,一个是赋值给hiddenfield,一个是javascript控制,网上有介绍。
    另外在后台给RadioButton设disabled属性还要注意的是,RadioButton实际上是2个html元素组成,一个sapn里包含了一个radio,直接用Attributes赋值是赋给外面的sapn,要用InputAttributes["disabled"]="disabled"这样。
    还有赋的值是没有保存状态的,每次postback之后要重新给InputAttributes赋值,而不仅仅是在Button事件中。
      

  15.   


    <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;
                            }
                        }
                    }
                }
            }
      

  16.   

    今天偶然发现Page.Form.SubmitDisabledControls这个属性,默认为false,可以设置为true。
    希望对lz有用