C# 我在第三次或第二次使用DropDownlist时出现以下错误&引用;无法加载正在加载的viewstate必须..”;
我有一个显示员工列表的“列表视图”和一个选择部门的“下拉列表”。当我第三次或第二次使用“DropDownlist”时,出现以下错误: “未能加载viewstate” 正在加载viewstate的控件树必须与上次请求期间用于保存“viewstate”的控件树匹配。例如,动态添加控件时,回发期间添加的控件必须与初始请求期间添加的控件的类型和位置匹配。” 这是asp.net网络表单,我必须使用这项技术,别无选择C# 我在第三次或第二次使用DropDownlist时出现以下错误&引用;无法加载正在加载的viewstate必须..”;,c#,asp.net,listview,webforms,ispostback,C#,Asp.net,Listview,Webforms,Ispostback,我有一个显示员工列表的“列表视图”和一个选择部门的“下拉列表”。当我第三次或第二次使用“DropDownlist”时,出现以下错误: “未能加载viewstate” 正在加载viewstate的控件树必须与上次请求期间用于保存“viewstate”的控件树匹配。例如,动态添加控件时,回发期间添加的控件必须与初始请求期间添加的控件的类型和位置匹配。” 这是asp.net网络表单,我必须使用这项技术,别无选择 namespace .Presentation.general { public par
namespace .Presentation.general
{
public partial class Listg : PageBase
{
void Page_PreInit(Object sender, EventArgs e)
{
this.MasterPageFile = "~/App_MasterPages/empty.Master";
}
protected void Page_Init(object sender, EventArgs e)
{
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
PopulateDepartmentsDropDownList();
GeneralObjectDataSource.SelectParameters["Department"].DefaultValue = "";
decimal presence = Convert.ToDecimal(Data.EmployeeDB.Create().GetCountEMPOnlineToday());
decimal visibles = Convert.ToDecimal(Data.EmployeeDB.Create().GetCountVisiblesEmployees());
visibles = (visibles == 0 ? 1 : visibles);
PresenceLabel.Text = System.Math.Round((presence / visibles) * 100, 1).ToString() + "% " + string.Format(" ({0})", presence);
}
}
public void Search(object sender, EventArgs e)
{
GeneralObjectDataSource.SelectParameters["name"].DefaultValue = Common.Converter.ConvertToFarsiYK(NameTextBox.Text.Trim());
if (PresenceRadioBottonList.SelectedValue == "1")
{
GeneralObjectDataSource.SelectParameters["onlyPresence"].DefaultValue = "true";
}
else
{
GeneralObjectDataSource.SelectParameters["onlyPresence"].DefaultValue = "false";
}
DataListView.DataBind();
}
public void select_department_SelectedIndexChanged(object sender, EventArgs e)
{
GeneralObjectDataSource.SelectParameters["name"].DefaultValue = "";
GeneralObjectDataSource.SelectParameters["Department"].DefaultValue = select_department.SelectedItem.Text;
GeneralObjectDataSource.DataBind();
DataListView.DataBind();
}
private void PopulateDepartmentsDropDownList()
{
select_department.DataSource = Biz.EmployeeBO.GetDepartments();
select_department.DataTextField = "Name";
select_department.DataValueField = "ID";
select_department.DataBind();
select_department.Items.Insert(0, new ListItem("", "0"));
select_department.SelectedValue = Biz.Settings.SelectedDepartmentID;
}
}
}
当您在开发时,这只是本地的吗?请尝试在
Page_PreInit
上添加if(!IsPostBack)
,但我不记得这在PreInit上是否可用。谢谢。我通过为列表视图设置viewstate=false,为整个页面设置viewstate=true来解决此问题