2013-01-10 77 views
1

在一個頁面中,我已經下拉列表了哪個用戶用來做搜索。這些下拉菜單是從數據庫中動態創建的,因此數字未知。訪問上一頁的下拉列表?

結果顯示在下一頁,其中所有下拉菜單中都有。我需要在結果頁面中顯示上一頁中的選定下拉值,但不確定從搜索頁面訪問選定下拉值的最佳方式是什麼。

請指導

謝謝:)

+1

將數值存儲在數據庫或'Session'中。當您通過Server.Transfer傳輸到下一頁時,您也可以使用頁面的PreviousPage屬性。 –

+1

聽起來就像你試圖建立一個穀倉,因爲你有很多木頭。如果要繼續顯示它,請使用可重用控件並重新綁定它,並且如果它們不可能經常更新,可以引入緩存控制器。 – jcolebrand

+0

@jcolebrand我在用戶控件中使用了此功能,並且正在結果頁面上使用用戶控件。但事情是如何獲得前一頁中的控制狀態?例如我需要在下拉菜單中顯示相同的選項。 – user576510

回答

2

您有幾種選擇。您可以將值存儲在數據庫中或存儲在Session中。

另一種選擇是使用網頁的PreviousPage property當您通過Server.Transfer轉移到下一個頁面。

Cross-Page Posting in ASP.NET Web Pages

if (Page.PreviousPage != null) 
{ 
    DropDownList ddl1 = 
     (DropDownList)Page.PreviousPage.FindControl("DropDownList1"); 
    if (ddl1 != null) 
    { 
     Label1.Text = ddl1.SelectedItem.Text; 
    } 
} 

如果不使用動態控制preious頁面(沒有測試過)上工作,你可以嘗試使用Request.Form["DropDownList1"]來獲取值。

+0

謝謝,它會帶來頁面上的最後一個狀態的控件或頁面加載時的初始狀態? – user576510

+0

@ user576510:您擁有控件的最後/當前狀態。你可以像訪問它們一樣通過FindControl來訪問它們。 –

+0

只有保存到頁面狀態,對不對?由於這是動態生成的,所以他不會擁有頁面狀態值。 – jcolebrand