在一個頁面中,我已經下拉列表了哪個用戶用來做搜索。這些下拉菜單是從數據庫中動態創建的,因此數字未知。訪問上一頁的下拉列表?
結果顯示在下一頁,其中所有下拉菜單中都有。我需要在結果頁面中顯示上一頁中的選定下拉值,但不確定從搜索頁面訪問選定下拉值的最佳方式是什麼。
請指導
謝謝:)
在一個頁面中,我已經下拉列表了哪個用戶用來做搜索。這些下拉菜單是從數據庫中動態創建的,因此數字未知。訪問上一頁的下拉列表?
結果顯示在下一頁,其中所有下拉菜單中都有。我需要在結果頁面中顯示上一頁中的選定下拉值,但不確定從搜索頁面訪問選定下拉值的最佳方式是什麼。
請指導
謝謝:)
您有幾種選擇。您可以將值存儲在數據庫中或存儲在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"]
來獲取值。
謝謝,它會帶來頁面上的最後一個狀態的控件或頁面加載時的初始狀態? – user576510
@ user576510:您擁有控件的最後/當前狀態。你可以像訪問它們一樣通過FindControl來訪問它們。 –
只有保存到頁面狀態,對不對?由於這是動態生成的,所以他不會擁有頁面狀態值。 – jcolebrand
將數值存儲在數據庫或'Session'中。當您通過Server.Transfer傳輸到下一頁時,您也可以使用頁面的PreviousPage屬性。 –
聽起來就像你試圖建立一個穀倉,因爲你有很多木頭。如果要繼續顯示它,請使用可重用控件並重新綁定它,並且如果它們不可能經常更新,可以引入緩存控制器。 – jcolebrand
@jcolebrand我在用戶控件中使用了此功能,並且正在結果頁面上使用用戶控件。但事情是如何獲得前一頁中的控制狀態?例如我需要在下拉菜單中顯示相同的選項。 – user576510