0

基本的に、ドロップダウンリストをラジオボタンにバインドしようとしています。ドロップダウン メニューには、ラジオ ボタンの選択に応じて 4 つのオプションがあります。最初の 2 つのオプションではラジオ ボタンがアクティブになり、ドロップダウン メニューの残りの 2 つのオブジェクトではラジオ ボタンが非アクティブになります。

ドロップダウンのフロントエンドコードは次のとおりです。

<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 に答える