パネルを表示または非表示にするラジオ ボタンが必要です。
protected void RadioButtonList1_SelectedIndexChanged(object sender, EventArgs e)
{
if (RadioButtonList1.SelectedIndex == 0)
{
newPanel.Visible = true;
updatePanel.Visible = false;
}
else if (RadioButtonList1.SelectedIndex == 1)
{
newPanel.Visible = false;
updatePanel.Visible = true;
}
}
これらのパネルの外側には、データ ソース (グリッドビュー) に影響を与えるドロップ ダウン リストがあります。2 番目のラジオ ボタンは、このデータ ソースを保持するパネルを表示します。ドロップダウン メニューから別の項目が選択されたときに発生する変更のコードは次のとおりです。
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
//change WHERE clause for SQL statement that effects grid view based on drop down menu selection
SqlDataSource4.SelectParameters["userIdSelected"].DefaultValue = userNameDropDown.SelectedItem.Value;
}
これは正しく機能し、更新によって表示されているデータ ソースが変更されます。
ただし、現在、最初のラジオ ボタンを選択して (別のパネルを表示)、ドロップダウン リストから名前を変更すると、2 番目のラジオ ボタンに移動すると、以前のデータ ソースが表示されます。ドロップダウン メニューへの変更が正しく反映されません。
編集:ラジオボタンの変更に変更を追加しようとしましたが、それでも同じ動作をしています:
protected void RadioButtonList1_SelectedIndexChanged(object sender, EventArgs e)
{
SqlDataSource4.SelectParameters["userIdSelected"].DefaultValue = userNameDropDown.SelectedItem.Value;
if (RadioButtonList1.SelectedIndex == 0)
{
newPanel.Visible = true;
updatePanel.Visible = false;
}
else if (RadioButtonList1.SelectedIndex == 1)
{
newPanel.Visible = false;
updatePanel.Visible = true;
}
}