0

コードビハインドでフォームを作成しています。

私がやろうとしているのは、ラジオボタンがいつチェックされ、いつチェックが変更されたかを検出することです。

私は次のものを持っています

RadioButton radio = new RadioButton() { ClientIDMode = System.Web.UI.ClientIDMode.Static, AutoPostBack=true, ID = "rbOther" + testEquipment.Id, GroupName = "grp" + testEquipment.Id, Checked = false };
radio.CheckedChanged += new EventHandler(radio_CheckedChanged);

testEquipment は、いくつかのデータを格納するオブジェクトのインスタンスです。

tdBrandName.Controls.Add(new TextBox() { ClientIDMode = System.Web.UI.ClientIDMode.Static, ID = "txtBrandName" + testEquipment.Id, Text = serviceStationTestEquipment != null ? serviceStationTestEquipment.BrandName : string.Empty, Width = new Unit(300), Enabled = serviceStationTestEquipment != null ? serviceStationTestEquipment.Other : false });
tdBrandName.Controls.Add(new RequiredFieldValidator() { Display = ValidatorDisplay.Dynamic, ControlToValidate = "txtBrandName" + testEquipment.Id, Text = "Required field", ErrorMessage = "Test Equipment Tab: Field is required", CssClass = "validationerror", Enabled = serviceStationTestEquipment != null ? serviceStationTestEquipment.Other : false, ID = ID = "reqValidator" + testEquipment.Id });

次に、ラジオボタンがクリックされたときにテキストボックスと必須フィールドバリデーターを無効にしたいと考えています。つまり、3つあります。なし、デフォルト、その他

その他が選択されている場合、必要なフィールドバリデータとともにテキストボックスを有効にする必要があります。

void radio_CheckedChanged(object sender, EventArgs e)
    {
        RadioButton check = sender as RadioButton;

        if (check == null)
            return;

        string Id = check.ID.Replace("rbOther", "");

        TextBox text = check.Parent.Parent.FindControl(string.Format("txtBrandName{0}", Id)) as TextBox;

        text.Enabled = check.Checked;

        RequiredFieldValidator validator = check.Parent.Parent.FindControl(string.Format("reqValidator{0}", Id)) as RequiredFieldValidator;
        validator.Enabled = check.Checked;
    }
4

2 に答える 2

1

これがサンプルケースです。ラジオボタン リストに 3 つの項目があり、選択した値に基づいて、ラベルにメッセージを表示したいと考えています。

<asp:RadioButtonList ID="rbtnType" runat="server" RepeatDirection="Vertical">
<asp:ListItem Value="C">Contract </asp:ListItem>
<asp:ListItem Value="I">Independent </asp:ListItem>
<asp:ListItem Value="O">OutSource </asp:ListItem>
</asp:RadioButtonList>
 <br />
<asp:Label ID="lblLaborType" runat="server" ></asp:Label>

<script type="text/javascript">
 $(document).ready(function () {
    $("#<%=rbtnType.ClientID%>").change(function () {
        var rbvalue = $("input[@name=<%=rbtnType.ClientID%>]:radio:checked").val();
        if (rbvalue == "C") {           
            $('#<%=lblLaborType.ClientID %>').html('Do this');
        }
        else if (rbvalue == "I") {
            $('#<%=lblLaborType.ClientID %>').html('else this');
        }
        else if (rbvalue == "O") {
            $('#<%=lblLaborType.ClientID %>').html('or else this');
        }
    });
});  </script>
于 2012-06-07T07:15:31.497 に答える