У меня есть раскрывающийся список, который при изменении сохранит новое значение в переменной ViewState, так что после обратной передачи выпадающий список будет извлекать выбранное значение из ViewState, если оно было установлено ранее.Сохранение выпадающего списка выбранного значения для ViewState
Когда он пытается сохранить выбранное значение в DropDownList1_SelectedIndexChanged для ViewState, он всегда вставляет исходное значение, а не обновленное. В этом случае ViewState всегда «R» и никогда не изменяется в соответствии с другими выбранными значениями.
Любые идеи?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebApplication11
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (ViewState["List1_Value"] != null)
{
DropDownList1.SelectedValue = ViewState["List1_Value"].ToString();
}
else
{
DropDownList1.SelectedValue = "R";
}
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
ViewState["List1_Value"] = DropDownList1.SelectedValue.ToString();
}
}
}
Вы уверены, что проблема с сохранением в viewstate? Разве это не всегда R, потому что оператор if возвращает FALSE? –
Оператор if возвращает false на первой странице_load. Затем, когда выбранное значение изменено, ViewState сохраняет значение списка, но только оригинальное «R», никогда не отличающееся значение, которое было выбрано для запуска SelectedIndexChanged. Во второй раз утверждение if истинно, и список извлекает его значение из ViewState, что досадно остается «R», так как selectedIndexChanged не сохраняет новое выбранное значение в ViewState. –