2009-05-18 122 views
0

您是否可以鏈接到其他頁面的選項下拉框中的特定值?鏈接到選項下拉菜單

換句話說,假設我在第1頁上,並且我想鏈接到第2頁,該頁面上有一個帶有3個不同值的選項下拉框。比方說,默認情況下,當您轉到第2頁時,下拉選項框顯示值1.

是否可以鏈接到第2頁並在運行中更改該選項框的值?而當您單擊第1頁上的鏈接時,它將自動顯示值3,而不是1在第2頁上。

回答

1

這當然是可以的。你可以在查詢字符串中傳遞一個標誌。因此,在頁面1上,您可以鏈接到page2,如「page2.aspx?option = 3」。然後,在第2頁的PageLoad方法中,只需從查詢字符串(Request.QueryString["option"])中讀取該值,並適當設置DropDownList的選定項。

一個第1頁你會...

<a href="page2.aspx?option=3">link to page 2</a> 

在第2頁的代碼隱藏,基於鋁的例子...

void Page_Load(object sender, EventArgs e) { 
    if (!Page.IsPostBack) { 
     int option; 
     if(int.TryParse(Request.QueryString["option"], out option) { //Only set the value if it is actually an integer 
     ddlList.SelectedIndex = option; 
     } 
    } 
} 
+0

感謝Jon的回答。我在asp.net中有點新鮮感。你能給我一個你剛剛描述的代碼樣本嗎? – arcadian 2009-05-18 04:12:48

0

喬恩·弗裏蘭的回答基本上是我會做的方式。您可能希望將代碼設置爲Page_Load函數內的codebehind類中的列表索引。

您也可以保存在ASP.Net會話中設置的選項的值,但如果您開始讓用戶在網站上跳動,則會變得有點棘手。他們可能會回到第2頁,仍然會將會話變量設置爲意外事件。另外,如果用戶暫時處於非活動狀態或者服務器重置,您可能會遇到會話被刪除的問題。另一方面,如果你把它放在Session對象中,你可以在你的頁面之間來回移動,並保留你需要的所有數據。

如果你想看到一個樣本,你可以試試:


void Page_Load (object sender, EventArgs e) { 
    if (! Page.IsPostBack) { 
    ddlList.SelectedIndex = Request.QueryString["option"] 
    } 

你想要把代碼的IsPostBack段內,這樣它將只運行在第一時間將用戶定向到新的一頁! 。