2012-11-08 50 views
1

我有一個網頁:Menu.aspx,在那裏我有相關的以下控件:保留的DropDownList設置

  • 一些值
  • 一個按鈕一個DropDownList,它重定向我到一個叫頁面Edit.aspx。

在我Edit.aspx頁,我有一個取消按鈕,用戶與下面的C#方法

protected void btnCancel_click(object sender, EventArgs e) 
{ 
    Response.Redirect("Menu.aspx"); 
} 

我希望做的是當重定向回菜單頁我將我的用戶重定向到Menu.aspx,我保留了他們選擇的DropDownList的值。

在此先感謝!

編輯:理想情況下,我想要實現這個沒有查詢字符串(如果可能)

EDIT2:我在想東西invovling一個視圖狀態或回傳,但我不熟悉的。

回答

1

當你叫Response.Redirect("Menu.aspx");你已經做出了新的要求,其中前一頁不是一部分。這就像重新調用頁面一樣。

你可以把會議的價值來Edit.aspx之前或傳遞值回通過查詢字符串

Response.Redirect("Menu.aspx?dropdownvalue=123"); 

Menu.aspx,你會檢查是否存在?dropdownvalue=123並設置所選項目到價值

+0

理想情況下,我想這樣做,而不使用查詢字符串,但那是我最初想到的解決方案 – Rhs

+0

Nevermind,我想我會去查詢字符串。這似乎是最簡單的解決方案。 – Rhs

1

不是最優雅的解決方案,但可以創建包含選定值的會話變量。

例如:

dropDown_SelectedIndex(object sender, EventArgs e) 
{ 
    Session["SelectedItem"] = dropDown.SelectedValue; 
} 

當你做對重定向,在Menu.aspx的頁面負載,您填充下拉後,檢查這個會話變量存在,那麼選擇該項目,將其取下來自應用程序。

void Page_Load(object sender, EventArgs e) 
{ 
    if(!IsPostBack) 
    { 
     //populate drop down here 

     if(Session["SelectedItem"] != null) 
     { 
       dropDown.SelectedValue = Session["SelectedItem"].ToString(); 
       Session["SelectedItem"] = null; 
     } 
    } 
} 

或者你也可以通過查詢字符串傳遞,但這樣一來,你保留你的網址