2012-10-25 68 views
0

我有2个单选按钮和选项1和选项2下的下拉列表。用户可以选择单选按钮或下拉列表。如何在选择下拉值时取消选择单选按钮

选项1

radiobtn1 
radiobtn2 

选项2

dropdownlistbox 

下选项1的radiobtn1检查作为默认值。当用户从下拉列表中选择该值时,应该禁用这两个单选按钮,或者应该取消选中默认选中的radiobtn1。

  <tr><td>option1</td></tr> 
      <tr> 
      <td><asp:RadioButton ID="rdo" GroupName="Month" Text="radiobtn1" runat="server /></td> 
      <td><asp:RadioButton ID="rdo2" GroupName="Month" Text="radiobtn2" runat="server /></td> 
      </tr> 
      <tr><td>option2</td></tr> 
      <tr><td> 
      <asp:DropDownList ID="DropDownList1" runat="server" OnSelectedIndexChanged="ddMonYear_SelectedIndexChanged"> 
         <asp:ListItem Text="opt1"></asp:ListItem> 
         <asp:ListItem Text="opt2"></asp:ListItem> 
      </asp:DropDownList> 
      </td></tr> 

protected void Page_Load(object sender, EventArgs e) 
{ 
rdo.Checked=true; 
if (ddMonYear.SelectedValue.Length.ToString() != "0") 
     { 
      rdo.Checked = false; 
      rdo.Enabled = false; 
     } 
     else 
     { 
      rdo.Checked = true; 
     } 
} 

上述代码不起作用。当我从下拉菜单中选择数值时,radiobtn 1不会取消选择。

帮我纠正我的代码。 谢谢。

+0

看起来应该是客户端脚本。你为什么不试着用JS来做呢? – Uriil

+0

为什么要将'Length'强制转换为字符串并将其与'“0”'进行比较?为什么不只是'ddMonYear.SelectedValue.Length!= 0'? –

+0

如果我以这种方式演绎..我收到一个错误,说运算符'!='不能应用于类型'int'和'字符串'的操作数 – Sam

回答

0

在您的下拉框,添加以下代码(自动回)

<asp:DropDownList ID="DropDownList1" runat="server" OnSelectedIndexChanged="ddMonYear_SelectedIndexChanged" AutoPostBack=True"> 

这样做是保持下拉框的值。每次加载页面时,下拉框会在页面加载事件触发前获取默认值。试试看。

+0

这是正确的? protected void ddMonYear_SelectedIndexChanged(object sender,EventArgs e) if(ddMonYear.SelectedValue.Length.ToString()!=“0”) { rdo.Enabled = false; } } – Sam