0

Webページで実行するために移行する必要がある単純なWindowsフォームアプリがあるため、aspx(c#)を試しています。

2 つのラジオ ボタンがありますが、そのうちの 1 つだけをチェックする必要があります。元のアプリとまったく同じコードを実装しましたが、機能しません:

protected void RadioButton1_CheckedChanged(object sender, EventArgs e)
    {
        if (RadioButton1.Checked == true)
        {
            RadioButton2.Checked = false;
        }
    }
protected void RadioButton2_CheckedChanged(object sender, EventArgs e)
    {
        if (RadioButton2.Checked == true)
        {
            RadioButton1.Checked = false;
        }
    }

では、なぜこれらの変更がページに適用されないのでしょうか?

4

3 に答える 3

1

コントロールGroupNameのプロパティを使用できます。RadioButton

のセットに同じGroupNameものを設定しRadioButtonsた場合、グループから選択できるラジオ ボタンは 1 つだけなので、上記の投稿/質問に書いた Code Behid を書く必要はありません。

TextBoxただし、特定のラジオ ボタンのクリック イベントを無効にするなどのアクションを呼び出したい場合は、次のサンプル コードを使用できます。

例:この例では、3 つのラジオ ボタンをすべて SameGroupNameに設定しているため、一度に 1RadioButtonつしか選択できません。

ユーザーが RadioButton1 を選択/チェックすると、TextBox1 が無効になります。

注 :RadioButton AutoPostBackプロパティが設定されてTrueいない場合にイベントが発生しないことを確認してくださいRadioButton

設計コード:

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <asp:RadioButton ID="RadioButton1" runat="server" Text="DisableTextBox" GroupName="Group1" AutoPostBack="True" OnCheckedChanged="RadioButton1_CheckedChanged"/>
    <asp:RadioButton ID="RadioButton2" runat="server"  GroupName="Group1" AutoPostBack="True"/>
    <asp:RadioButton ID="RadioButton3" runat="server"  GroupName="Group1" AutoPostBack="True" />

コードビハインド:

protected void RadioButton1_CheckedChanged(object sender, EventArgs e)
        {
            if (RadioButton1.Checked)
                TextBox3.Enabled = false;
            else
                TextBox3.Enabled = true;
        }
于 2013-11-10T18:33:16.540 に答える