2017-11-16 19 views
0

私はこれにかなり新しいので、助けてください。クッキーのドロップダウン値を保存する[ASP]

2つのドロップダウンリストの値をクッキーに保存しようとしていますが、ページが再び読み込まれたときにこれらの値をデフォルト値として使用しようとしています。

 protected void ddlSelectedIndexChange(Object sender, EventArgs e) { 

     HttpCookie cookie = new HttpCookie("ddlValues"); 
     cookie.Values["ddlCatalogType"] = ddlCatalogType.SelectedValue; 
     cookie.Values["ddlSource"] = ddlSource.SelectedValue; 
     cookie.Expires = DateTime.Now.AddYears(50); 
     Response.Cookies.Add(cookie); 
    } 

ここからはどこに行くのですか?私はこの点を逸しており、上記のコードが100%正しいかどうかは分かりません。

+0

提案:アプリケーションでCookieを保護します。 – user4221591

答えて

0

希望のページのPage_Loadに以下のスニペットを追加します。

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      if (Request.Cookies["ddlValues"] != null) 
      { 
       if (Request.Cookies["ddlValues"]["ddlCatalogType"] != null) 
       { 
        string catalog = Request.Cookies["ddlValues"]["ddlCatalogType"];  
        ddlCatalogType.SelectedIndex = ddlCatalogType.Items.IndexOf(ddlCatalogType.Items.FindByText(catalog)); 
       } 

       if (Request.Cookies["ddlValues"]["ddlSource"] != null) 
       { 
        string source = Request.Cookies["ddlValues"]["ddlSource"]; 
        ddlSource.SelectedIndex = ddlSource.Items.IndexOf(ddlSource.Items.FindByText(source)); 
       } 
      } 
     } 
    } 

あなたのコードでは、既に存在するかどうかを確認することをお勧めします。

protected void ddlSelectedIndexChange(Object sender, EventArgs e) 
{ 
    if (Request.Cookies["ddlValues"] == null) 
    { 
     HttpCookie cookie = new HttpCookie("ddlValues"); 
     cookie.Values["ddlCatalogType"] = ddlCatalogType.SelectedValue; 
     cookie.Values["ddlSource"] = ddlSource.SelectedValue; 
     cookie.Expires = DateTime.Now.AddYears(50); 
     Response.Cookies.Add(cookie); 
    } 
} 
+0

ありがとうございました、私は最終的にすべてを整理しました! – DevNoob

関連する問題