0

我基本上是在尝试将下拉列表与单选按钮绑定。下拉菜单中有 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>

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

4

3 回答 3

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; }
        }
于 2012-09-19T11:24:53.130 回答
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”的设置事件之后并将此代码粘贴到其中

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

}
于 2012-09-19T11:37:01.860 回答
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>

如需更多帮助,您可以阅读这篇文章。

于 2012-09-19T11:28:11.820 回答