不應再從數據庫中檢索單選按鈕列表1(rbl1)的數據。它應該已經從ViewState中填充。這是您頁面上的一個不可見對象,用於在將控件加載到瀏覽器並將表單返回給服務器之間跟蹤控件的內容。如果您將rbl1重新綁定到回發中的數據,則會丟失當前的選擇。
如果結果將根據第一個的選擇而改變,那麼從數據庫檢索發送radiobuttonlist的數據應該沒有問題。但是,如果數據的大小很小,則可能需要將結果緩存到應用程序緩存(如果所有用戶都看到相同的數據集,或者會話緩存是用戶相關的)。
然後,您可以使用Linq根據第一個單選按鈕列表中的選擇來查詢數據。
<asp:RadioButtonList ID="rbl1" runat="server" AutoPostBack = "true"
OnSelectedIndexChanged="rbl1_SelectedIndexChanged">
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
//bind your rbl1 here
}
}
protected void rbl1_SelectedIndexChanged(object sender, EventArgs e)
{
//load your second radio button list depending on the selection of the first
}