CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

未能加载视图状态错误

楼主hhdehh(默蛇)2005-07-04 09:18:01 在 .NET技术 / ASP.NET 提问

小弟因为不想每次回发都从数据库提取数据就在第一次加载时将数据存放在了ViewState中  
  if(!IsPostBack)  
  {  
  ViewState["TablePart"]=this.GetTablePart();  
  ViewState["SetStatus"]=this.GetTableStatus();  
  ViewState["ArrFile"]=this.GetTableFile();  
  HiddenDetail();  
  }  
  private   DataTable   GetTablePart()  
  private   DataSet   GetTableStatus()  
  private   ArrayList   GetTableFile()  
  然后我点击新增按钮时就在ViewState中添加数据行  
  可是我更新页面重新生成table时就报如下错误  
  ------------------------------------------------------------------------------------------  
  未能加载视图状态。正在向其中加载视图状态的控件树必须与前一请求期间用于保存视图状态的控件树相匹配。例如,当以动态方式添加控件时,在回发期间添加的控件必须与在初始请求期间添加的控件的类型和位置相匹配。    
  说明:   执行当前   Web   请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。    
   
  异常详细信息:   System.Web.HttpException:   未能加载视图状态。正在向其中加载视图状态的控件树必须与前一请求期间用于保存视图状态的控件树相匹配。例如,当以动态方式添加控件时,在回发期间添加的控件必须与在初始请求期间添加的控件的类型和位置相匹配。  
   
  源错误:    
   
  执行当前   Web   请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。      
   
  堆栈跟踪:    
   
   
  [HttpException   (0x80004005):   未能加载视图状态。正在向其中加载视图状态的控件树必须与前一请求期间用于保存视图状态的控件树相匹配。例如,当以动态方式添加控件时,在回发期间添加的控件必须与在初始请求期间添加的控件的类型和位置相匹配。]  
        System.Web.UI.Control.LoadViewStateRecursive(Object   savedState)   +189  
        System.Web.UI.Control.LoadViewStateRecursive(Object   savedState)   +414  
        System.Web.UI.Control.LoadViewStateRecursive(Object   savedState)   +414  
        System.Web.UI.Control.LoadViewStateRecursive(Object   savedState)   +414  
        System.Web.UI.Control.LoadViewStateRecursive(Object   savedState)   +414  
        System.Web.UI.Control.LoadViewStateRecursive(Object   savedState)   +414  
        System.Web.UI.Control.LoadViewStateRecursive(Object   savedState)   +414  
        System.Web.UI.Control.LoadViewStateRecursive(Object   savedState)   +414  
        System.Web.UI.Control.LoadViewStateRecursive(Object   savedState)   +414  
        System.Web.UI.Control.AddedControl(Control   control,   Int32   index)   +291  
        System.Web.UI.ControlCollection.Add(Control   child)   +153  
        System.Web.UI.WebControls.RowControlCollection.Add(Control   child)   +33  
        System.Web.UI.ControlCollection.AddAt(Int32   index,   Control   child)   +26  
        System.Web.UI.WebControls.RowControlCollection.AddAt(Int32   index,   Control   child)   +37  
        System.Web.UI.WebControls.TableRowCollection.Add(TableRow   row)   +29  
        CECERP.IE.Sales.Order.BatchProcess.ProcessStatus_FullControl_Part.BindPartItems()  
        CECERP.IE.Sales.Order.BatchProcess.ProcessStatus_FullControl_Part.BindPart()  
        CECERP.IE.Sales.Order.BatchProcess.ProcessStatus_FullControl_Part.InitPage()  
        CECERP.IE.Libraries.Tools.Templates.GenericPage.Page_Load(Object   sender,   EventArgs   e)   +165  
        System.EventHandler.Invoke(Object   sender,   EventArgs   e)   +0  
        System.Web.UI.Control.OnLoad(EventArgs   e)   +67  
        System.Web.UI.Control.LoadRecursive()   +35  
        System.Web.UI.Page.ProcessRequestMain()   +720  
   
     
  问题点数:100、回复次数:9Top

1 楼hhdehh(默蛇)回复于 2005-07-04 10:13:55 得分 0

upTop

2 楼houlinghouling(秋水伊)回复于 2005-07-04 10:28:25 得分 40

ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpguide/html/cpconmantainingstateincontrol.htmTop

3 楼hhdehh(默蛇)回复于 2005-07-04 10:35:09 得分 0

看不明白,跟我的这个问题好像关系不大。哪位能够解释一下。Top

4 楼hhdehh(默蛇)回复于 2005-07-04 10:54:57 得分 0

upTop

5 楼hhdehh(默蛇)回复于 2005-07-04 11:32:44 得分 0

upTop

6 楼cuike519(I will be back!)回复于 2005-07-04 23:04:53 得分 40

这是错误可能是由于当前的在重新建立时产生了错误,可能是由于在请求页面前后你创建了新的控件。  
   
  我认为你这些数据保存在客户端是不合适的。这样不但增加了对象的序列化的时间开销还大大增加了网络开销,与其这样还不如将他们放到Session里面或者放到Cache里面,后者更合理一些。  
   
  Viewstate用在这里我认为很不合适!你可以考虑上面提到的其他解决方法。Top

7 楼renyu732(Sysinfo)回复于 2005-07-05 00:33:19 得分 20

upTop

8 楼hhdehh(默蛇)回复于 2005-07-08 10:58:11 得分 0

to:   cuike519(marshal)    
  你说了原因,可是没有说解决方案,怎么解决这类问题哟?  
  Top

9 楼hhdehh(默蛇)回复于 2005-07-08 11:24:46 得分 0

我做了一个动态添加控件的实验一切良好,郁闷in  
  -----------------------------------------------------  
  namespace   hhExecute  
  {  
  ///   <summary>  
  ///   _Default   的摘要说明。  
  ///   </summary>  
  public   class   _Default   :   System.Web.UI.Page  
  {  
  protected   System.Web.UI.WebControls.Table   Table1;  
  protected   System.Web.UI.WebControls.Button   Button1;  
   
  private   void   Page_Load(object   sender,   System.EventArgs   e)  
  {  
  //   在此处放置用户代码以初始化页面  
  if(!IsPostBack)  
  {  
  ViewState["state"]=1;  
  Button   btn=new   Button();  
  btn.Text="abc";  
  Table1.Rows[0].Cells[0].Controls.Add(btn);  
  }  
  BindTable();  
  }  
   
  #region   Web   窗体设计器生成的代码  
  override   protected   void   OnInit(EventArgs   e)  
  {  
  //  
  //   CODEGEN:   该调用是   ASP.NET   Web   窗体设计器所必需的。  
  //  
  InitializeComponent();  
  base.OnInit(e);  
  }  
   
  ///   <summary>  
  ///   设计器支持所需的方法   -   不要使用代码编辑器修改  
  ///   此方法的内容。  
  ///   </summary>  
  private   void   InitializeComponent()  
  {          
  this.Button1.Click   +=   new   System.EventHandler(this.Button1_Click);  
  this.Load   +=   new   System.EventHandler(this.Page_Load);  
   
  }  
  #endregion  
   
  private   void   BindTable()  
  {  
  int   i=int.Parse(ViewState["state"].ToString());  
  for(int   j=0;j<i;j++)  
  {  
  Button   btn=new   Button();  
  TableRow   tr=new   TableRow();  
  TableCell   tc=new   TableCell();  
  btn.Text=j.ToString();  
  tc.Controls.Add(btn);  
  tr.Cells.Add(tc);  
   
  Table1.Rows.Add(tr);  
  }  
  }  
   
  private   void   Button1_Click(object   sender,   System.EventArgs   e)  
  {  
  Button   btn=new   Button();  
  int   i=int.Parse(ViewState["state"].ToString());  
  i++;  
  btn.Text=i.ToString();  
  ViewState["state"]=i;  
  TableRow   tr=new   TableRow();  
  TableCell   tc=new   TableCell();  
  tc.Controls.Add(btn);  
  tr.Cells.Add(tc);  
   
  Table1.Rows.Add(tr);  
  }  
  }  
  }Top

相关问题

  • 未能加载视图状态
  • 未能加载的错误!!!!!!!!!!
  • 请教:未能加载类型错误!
  • 请问怎么解决这个问题(未能加载视图状态)
  • 未能在设计视图中打开的错误。
  • 可怪的 应用程错误“未能加载类型”
  • 分析器错误信息: 未能加载类型“study.index”。?????
  • 新手请教:未能加载类型错误!
  • 加载错误!!!
  • 怎样在视图里加载ActiveX?

关键词

  • 视图
  • 控件
  • 代码
  • 页面
  • 数据
  • loadviewstaterecursive
  • 请求
  • 加载视图状态
  • 添加
  • 匹配

得分解答快速导航

  • 帖主:hhdehh
  • houlinghouling
  • cuike519
  • renyu732

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo