2010-08-04 78 views
1

我對asp.net很陌生,對它的工作一竅不通,隨着我的前進,我越來越感到新的疑惑。如何在這種情況下將連接請求保存到數據庫

在這裏,我正在處理頁面加載時綁定的兩個RadioLists

現在當用戶更改列表1中單選按鈕的索引時。第二個需要相應更新,具體取決於當前爲所選單選按鈕設置的值。 由於頁面將被重新發布,因此我需要再次觸發查詢以從當前選定索引的DataBase中獲取新數據,或者可以以Dataset的形式在session中存儲2-3個表格。

在這種情況下應該怎麼做。我應該再次觸發sql查詢從會話檢索數據集。

什麼是最優化的方法。爲什麼?

回答

1

不應再從數據庫中檢索單選按鈕列表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 
} 
相關問題