根据asp.net中的下拉列表选择单选按钮

时间:2012-09-19 11:04:57

标签: c# asp.net drop-down-menu radio-button

我基本上试图将下拉列表与单选按钮绑定。下拉菜单中有4个选项,根据这些选项应选择单选按钮。 使用前两个选项时,单选按钮应处于活动状态,并且下拉菜单中的其余两个对象将显示单选按钮。

这是下拉列表的前端代码:

<asp:DropDownList ID="ddLType" runat="server" Width="406px" Height="23px">
<asp:ListItem Value="Prof">Professional</asp:ListItem>
<asp:ListItem>Enterprise</asp:ListItem>
<asp:ListItem>Maintanence</asp:ListItem>
<asp:ListItem>Reporting</asp:ListItem>
</asp:DropDownList>

这是我的单选按钮代码:

<asp:RadioButtonList ID="rdoMeapSupport" RepeatDirection="Horizontal" runat="server" AutoPostBack="True" >
<asp:ListItem Value="1" Text="Yes" />
<asp:ListItem Value="0" Text="No" />                        
</asp:RadioButtonList>

如果我们选择专业,则单选按钮应为活动状态,并且选中是。 对于企业,这两个按钮应该是活动的但不是选中的。 通过维护和报告,按钮应变为非活动状态。

3 个答案:

答案 0 :(得分:1)

将AutoPostBack =“true”属性应用于下拉列表,并在所选索引更改事件中执行以下逻辑。

<asp:DropDownList ID="ddLType" runat="server" Width="406px" Height="23px" 
            onselectedindexchanged="ddLType_SelectedIndexChanged" AutoPostBack="true" >
            <asp:ListItem Value="Prof">Professional</asp:ListItem>
            <asp:ListItem>Enterprise</asp:ListItem>
            <asp:ListItem>Maintanence</asp:ListItem>
            <asp:ListItem>Reporting</asp:ListItem>            
        </asp:DropDownList>
        <asp:RadioButtonList ID="rdoMeapSupport" RepeatDirection="Horizontal" runat="server"
            AutoPostBack="True">
            <asp:ListItem Value="1" Text="Yes" />
            <asp:ListItem Value="0" Text="No" />
        </asp:RadioButtonList>


protected void ddLType_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (ddLType.SelectedIndex == 0 || ddLType.SelectedIndex == 1)
            {
                rdoMeapSupport.Enabled = true;
            }
            else
            { rdoMeapSupport.Enabled = false; }
        }

答案 1 :(得分:1)

首先,您必须将名为AutoPostBack的下拉列表的属性设置为true。您只需选择下拉列表并从属性窗口设置AutoPostBack = true即可。 然后转到代码后面的文件写下这些代码:

 protected void Page_Load(object sender, EventArgs e)
{
    if(!IsPostBack)
    {
        if (ddLType.SelectedValue == "Professional")
        {
            rdoMeapSupport.Enabled = true;
            rdoMeapSupport.SelectedValue = "Yes";
        }
    }


}

在您的单选按钮列表“SelectedIndexChanged”的set事件之后 并将此代码粘贴到

 protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
    if (ddLType.SelectedValue == "Professional")
    {
        rdoMeapSupport.Enabled = true;
        rdoMeapSupport.SelectedValue = "Yes";
    }

    if (ddLType.SelectedValue == "Enterprise")
    {
        rdoMeapSupport.SelectedValue = null;
        rdoMeapSupport.Enabled = true;
    }

    if ((ddLType.SelectedValue == "Maintanence") || (ddLType.SelectedValue == "Reporting"))
    {
        rdoMeapSupport.SelectedValue = null;
        rdoMeapSupport.Enabled = false;
    }

}

答案 2 :(得分:0)

我认为制作单选按钮是活动的,但不允许选择是没有用的,更好的是禁用它。
您可以使用jquery:

<script>
  $(function () {
    $("# <%# ddLType.ClientID %>").change(function () {
      var selVal = $(this).val();
      if(selVal == "Prof"){
        $('#rb_Statusno').removeAttr('disabled');
      else
        $('#rb_Statusno').attr('disabled', true);
      }  
</script>

如需更多帮助,您可以通过this发布。