动态装载自定义控件时,在响应完自定义的事件事件之后,多次装载切换时发生的错误!
动态装载自定义控件时,在响应完自定义的事件事件之后,多次装载切换时发生的错误!
//===Begin错误信息
未能加载视图状态。正在向其中加载视图状态的控件树必须与前一请求期间用于保存视图状态的控件树相匹配。例如,当以动态方式添加控件时,在回发期间添加的控件必须与在初始请求期间添加的控件的类型和位置相匹配。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Web.HttpException: 未能加载视图状态。正在向其中加载视图状态的控件树必须与前一请求期间用于保存视图状态的控件树相匹配。例如,当以动态方式添加控件时,在回发期间添加的控件必须与在初始请求期间添加的控件的类型和位置相匹配。
源错误:
行 162: sdf.ModeType = this.EditMode;
行 163: sdf.DeptId = this.DeptId;
行 164: this.DeptPN.Controls.Add(sdf);
行 165: ViewState["MyControl"] = "Sys_Dept_Position.ascx";
行 166: }
源文件: e:\web\powerise\sys\sys_dept.aspx.cs 行: 164
堆栈跟踪:
[HttpException (0x80004005): 未能加载视图状态。正在向其中加载视图状态的控件树必须与前一请求期间用于保存视图状态的控件树相匹配。例如,当以动态方式添加控件时,在回发期间添加的控件必须与在初始请求期间添加的控件的类型和位置相匹配。]
System.Web.UI.Control.LoadViewStateRecursive(Object savedState)
System.Web.UI.Control.LoadViewStateRecursive(Object savedState)
System.Web.UI.Control.AddedControl(Control control, Int32 index)
System.Web.UI.ControlCollection.Add(Control child)
Powerise.Sys.Sys_Dept.LoadDeptPosition() in e:\web\powerise\sys\sys_dept.aspx.cs:164
Powerise.Sys.Sys_Dept.InitDeptControl() in e:\web\powerise\sys\sys_dept.aspx.cs:243
Powerise.Sys.Sys_Dept.Page_Load(Object sender, EventArgs e) in e:\web\powerise\sys\sys_dept.aspx.cs:48
System.Web.UI.Control.OnLoad(EventArgs e)
System.Web.UI.Control.LoadRecursive()
System.Web.UI.Page.ProcessRequestMain()
//===End错误信息
装载的代码:
private void InitDeptControl()
{
switch(this.DeptTab.SelectedIndex)
{
case 0:
this.LoadDeptInfo();
break;
case 1:
this.LoadDeptStaff();
break;
case 2:
this.LoadDeptPosition();
break;
case 3:
this.LoadDeptGroup();
break;
case 4:
this.LoadDeptProject();
break;
case 5:
this.LoadDeptProduct();
break;
case 6: this.LoadDeptMenu();
break;
default: this.LoadDeptInfo();
break;
}
}
////////////////////////////////////////////////////
private void LoadDeptInfo()
{
this.DeptPN.Controls.Clear();
Sys.Sys_Dept_Info sdi = (Sys_Dept_Info)this.Page.LoadControl("Sys_Dept_Info.ascx");
sdi.PreDeptId = this.PreDeptId;
sdi.StaffId = this.StaffId;
sdi.ConnectionStr = this.ConnStr;
sdi.ModeType = this.EditMode;
sdi.DeptId = this.DeptId;
this.DeptPN.Controls.Add(sdi);
ViewState["ControlId"] = "Sys_Dept_Info.ascx";
}
在多个Tab页面之间切换,保存了Veie