在Cookie中存储下拉值[ASP]

时间:2017-11-16 19:31:45

标签: asp.net

我对此很新,所以请帮助我。

我正在尝试将2个下拉列表的值存储在cookie中,然后在页面再次加载时将这些值作为默认值。

        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%正确。

1 个答案:

答案 0 :(得分: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));
                }
            }
        }
    }

对于您的代码,我建议检查cookie是否已存在。

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);
    }
}