2015-08-23 56 views
0

我試圖將一個下拉列表的選定值存儲在與此代碼完美協作的Cookie中。寫入Cookie並將Cookie值設置爲文本框選擇Vlaue

protected void state_DropDownList_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     HttpCookie StudentCookies = new HttpCookie("userloaction_cookies"); 
     StudentCookies.Value = state_DropDownList.SelectedValue; 
     StudentCookies.Expires = DateTime.Now.AddDays(1000); 
     Response.Cookies.Add(StudentCookies); 
    } 

然後我想使用cookie值爲page_load之後的下拉列表設置選擇值。它可以工作,但在第一個值存儲在cookie中後,我無法更改下拉值。

protected void Page_Load(object sender, EventArgs e) 
    { 

    if (Request.Cookies["userloaction_cookies"] != null) 
    { 
      HttpCookie aCookie = Request.Cookies["userloaction_cookies"]; 
      string cookiesvalue = Server.HtmlEncode(aCookie.Value); 
      state_DropDownList.SelectedValue = Server.HtmlEncode(aCookie.Value); 
    } 

我認爲問題是Page_load方法在state_DropDownList_SelectedIndexChanged方法之前觸發。

是否有任何可能的方式使這項工作?

回答

0

頁面加載會在每個回帖中首先觸發。

您需要檢查IsPostBack的值。

方法如下:

if (!IsPostBack) 
{ 
    if (Request.Cookies["userloaction_cookies"] != null) 
    { 
     HttpCookie aCookie = Request.Cookies["userloaction_cookies"]; 
     string cookiesvalue = Server.HtmlEncode(aCookie.Value); 
     state_DropDownList.SelectedValue = Server.HtmlEncode(aCookie.Value); 
    } 

}