обновление переменной сеанса
Привет ,
у меня есть главная страница, содержащая выпадающий список о выборе языка
в masterPage pageLoad я пишу этот код
//initial value of Session if (Session["DropLang_Value"] = null) { Session["DropLang_Value"] = 0.ToString(); Session["DropLang_Text"] = English;.ToString(); }
и напишите этот код в событии
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) { Session["DropLang_Value"] = DropDownList1.SelectedItem.Value; Session["DropLang_Text"] = DropDownList1.SelectedItem.Text; }
у меня есть еще один Order_Now.aspx, который содержит выпадающий список и получает данные из базы данных в зависимости от выбранного элемента из выпадающего списка
Заказать Сейчас.код aspx-файл
public partial class Order_Now : BasePage { protected void Page_Load(object sender, EventArgs e) { SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["Myconecttion"].ConnectionString); SqlCommand cmd = new SqlCommand("select*from ProductLoc where cultureid=@value", con); cmd.Connection = con; cmd.Parameters.AddWithValue("@value", Session["DropLang_Value"].ToString()); con.Open(); SqlDataReader r = cmd.ExecuteReader(); DropOrderType.DataTextField = "ProductName"; DropOrderType.DataValueField= "ProductId"; DropOrderType.DataSource = r; DropOrderType.DataBind(); con.Close(); } protected void Button1_Click(object sender, EventArgs e) { } }
После того, как я сделаю точку останова и посмотрю, что это за путь .Чистая примет для того чтобы исполнить мои коды
я нашел это :
Проблема в том , что когда я захожу в Order_NOW.aspx и выбираю другой язык из выпадающего списка, переменная сеанса все еще имеет начальное значение (0) .
Выберите индекс изменен обновите значение но после выполнения моей страницы :(
Проблема заключается в том ,что переменная сеанса обновляется после события Page_Load
с главной страницы и страниц содержимого выполняется . :( :вздох: :растерянно:
Итак, как я могу решить эту проблему :-D
F-ES Sitecore
Если вы используете сеанс только как способ передачи данных с главной страницы на дочернюю, то вам лучше просто дать дочерней странице прочитать раскрывающееся значение непосредственно с главной страницы. Вы можете сделать это с помощью мастера.FindControl или Google, как использование строго типизированных главные страницы и вы можете выставить собственность на главную страницу, которая называется "текущий значение" или что-то, что возвращает значение из выпадающего списка.