我有一个下拉列表,当更改时会将新值保存到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? – 2011-12-13 22:55:07
if语句在第一个page_load上返回false。然后,当选定的值更改时,ViewState保存列表值,但仅保存原始“R”,而不会选择用于触发SelectedIndexChanged的不同值。第二次,if语句为true,并且列表从ViewState中检索它的值,该值仍然是“R”,因为selectedIndexChanged不会将新选定的值保存到ViewState中。 – 2011-12-13 23:20:39