ラジオボタンからのユーザーの選択に基づいて特定のコントロールを表示または非表示にする必要がありますが、そのコントロールを表示または非表示にする必要がありますユーザーがラジオボタンの1つ。ユーザーがラジオボタンをクリックしたときにイベントが発生する
ASP側でOnSelectedIndexChangedを追加しようとしましたが、何もしないようです。ラジオボタンの1つをクリックするとすぐにコードをトリガーする他の方法はありますか?
<asp:RadioButtonList ID="rblMeasurementSystem" runat="server" OnSelectedIndexChanged="rblMeasurementSystem_SelectedIndexChanged">
<asp:ListItem Text="Leads" Value="1" />
<asp:ListItem Text="Audit Thresholds" Value="2" />
<asp:ListItem Text="Root Cause" Value="3" />
<asp:ListItem Text="Pend Reasons" Value="4" />
<asp:ListItem Text="AA Review" Value="5" />
</asp:RadioButtonList>
とコードビハインド私が持っている中で:
protected void rblMeasurementSystem_SelectedIndexChanged(object sender, EventArgs e)
{
string value = rblMeasurementSystem.SelectedItem.Value.ToString();
if (value == "1")
{
lblLabel1.Visible = true;
txtText1.Visible = true;
lblLabel2.Visible = false;
txtText2.Visible = false;
lblLabel3.Visible = false;
txtText3.Visible = false;
lblLabel4.Visible = false;
txtText4.Visible = false;
lblLabel5.Visible = false;
txtText5.Visible = false;
}
if (value == "2")
{
lblLabel1.Visible = false;
txtText1.Visible = false;
lblLabel2.Visible = true;
txtText2.Visible = true;
lblLabel3.Visible = false;
txtText3.Visible = false;
lblLabel4.Visible = false;
txtText4.Visible = false;
lblLabel5.Visible = false;
txtText5.Visible = false;
}
if (value == "3")
{
lblLabel1.Visible = false;
txtText1.Visible = false;
lblLabel2.Visible = false;
txtText2.Visible = false;
lblLabel3.Visible = true;
txtText3.Visible = true;
lblLabel4.Visible = false;
txtText4.Visible = false;
lblLabel5.Visible = false;
txtText5.Visible = false;
}
etc...
}
パネル/グリッド上のコントロールをグループ化することができるので、1つの '.Visible'変更でコントロールを非表示にすることができます。 –
問題は、asp:ラジオボタンイベントは通常 'runat = "server"'タイプ、つまりサーバーコントロールです。あなたが探しているのは、DOMとASPコントロールとのクライアント側のやりとりのようなものです。この 'クライアント側'を処理するために、JavaScriptの機能/装飾を追加する必要があります。 –
@JeroenvanLangen - 良い提案!それは私のコードを大幅に削減しました。 –