Problem z zapamiętaniem wartości przez plik Cookie.

0

Witam. Sprawa wygląda tak przy pierwszym otwarciu strony ładują się w kontrolce dropdownlist języki w języku polskim.
Po wyborze odpowiedniego język np. Angielski wyświetlają sie teraz zawsze w tej kontrolce języki w języku angielskim. Jak zmienie teraz język np. na niemiecki to przy kolejnych odsłonach strony i tak języki są wyświetlane w języku angielskim a nie niemieckim. Ponizej kod.

 protected void Page_Load(object sender, EventArgs e)
        {

            if(!IsPostBack)
            {
                string tmp = "19";
                HttpCookie cook = Request.Cookies["SprachNr"];

                if (cook != null)
                {
                    tmp = cook.Value;
                }

                DropDownList1.DataSource = Language(tmp);
                DropDownList1.DataBind();
            }
        }

        public DataSet Language(string lang)
        {
            DataSet ds = new DataSet();
            string query = "select b.bez Bez, a.sprachnr Sprach from  aba_tec.t020 a, aba_tec.t030j b where b.beznr = a.beznr and b.sprachnr =" + lang + " order by 1";
            ds = GetQuery(query);
            return ds;
        }

        public DataSet GetQuery(string cmdString)
        {
            DataSet ds = new DataSet();

            OleDbConnection con = new OleDbConnection(connectionstring);
            OleDbCommand cmd = new OleDbCommand(cmdString, con);
            OleDbDataAdapter da = new OleDbDataAdapter(cmd);

            using (con)
            {
                da.Fill(ds);
            }


            return ds;
        }

        protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string tmp = DropDownList1.SelectedItem.Value.ToString();

            HttpCookie cook = new HttpCookie("SprachNr");
            cook.Value = tmp;
            Response.Cookies.Add(cook);
          
            DropDownList1.DataSource = Language(tmp);
            DropDownList1.DataBind();
        }
 
0

W zdarzeniu selectindexchange powinno być tak:

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {
           string tmp = ddl_Language.SelectedItem.Value.ToString();

            HttpCookie cook = Request.Cookies["SprachNr"];

            if (cook == null)
            {
                cook = new HttpCookie("SprachNr");
                cook.Value = tmp;
                Response.Cookies.Add(cook);
            }
            else
            {
                cook.Value = tmp;               
            }

            ddl_Language.DataSource = Language(tmp);
            ddl_Language.DataBind();
            ddl_Language.SelectedValue = tmp;
        }
 

W ten poprzeni sposób działa ok bo odnowa jest tworzony plik cookie ale czemu ten nie dziala

1 użytkowników online, w tym zalogowanych: 0, gości: 1