重载了这两个方法后,页面中所有控件的事件怎么都不执行了呀 protected override object LoadPageStateFromPersistenceMedium() { return null; } protected override void SavePageStateToPersistenceMedium(object viewState) { } BUTTON的CLICK也不执行了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 AutoEventWireup=true有没有人呀· ViewState持久化保持在服务器端如果你有一个非常酷的页面,页面上很多东西自动地响应用户操作而展现丰富的变化,你的ViewState是很有可能达到200K的。 这里是我将ViewState持久化保持在服务器端的代码,这样ViewState不占用网络带宽,因此其存取只是服务器的磁盘读取时间。并且它很小,可以说是磁盘随便转一圈就能同时读取好多ViewState,因此可以说“不占时间”。为了再“不占磁盘时间”,我还使用了缓存。 一下这段代码可以放在页面中,或者页面的父类中: C# codeprotected override object LoadPageStateFromPersistenceMedium(){ var viewStateID = (string)((Pair)base.LoadPageStateFromPersistenceMedium()).Second; var stateStr = (string)Cache[viewStateID]; if (stateStr == null) { var fn = Path.Combine(this.Request.PhysicalApplicationPath, @"App_Data/ViewState/" + viewStateID); stateStr = File.ReadAllText(fn); } return new ObjectStateFormatter().Deserialize(stateStr);}protected override void SavePageStateToPersistenceMedium(object state){ var value = new ObjectStateFormatter().Serialize(state); var viewStateID = (DateTime.Now.Ticks + (long)this.GetHashCode()).ToString(); //产生离散的id号码 var fn = Path.Combine(this.Request.PhysicalApplicationPath, @"App_Data/ViewState/" + viewStateID); ThreadPool.QueueUserWorkItem(obj => File.WriteAllText(fn, value)); Cache.Insert(viewStateID, value); base.SavePageStateToPersistenceMedium(viewStateID);} SUBTEXT就是这样写的他的就能运行好好的 怎么会不执行呢...protected override void SavePageStateToPersistenceMedium(object state) { base.SavePageStateToPersistenceMedium(state); } protected override object LoadPageStateFromPersistenceMedium() { return base.LoadPageStateFromPersistenceMedium(); } 对于实现了IPostBackDataHandler的接口的控件使用这个方法是有问题的 protected override void SavePageStateToPersistenceMedium(object state) { base.SavePageStateToPersistenceMedium(state); } protected override object LoadPageStateFromPersistenceMedium() { return base.LoadPageStateFromPersistenceMedium(); }晕你这样写代码有啥意义 这样写是没有意义.但你也不能为null吧.你为null了.你的事件要执行才怪.我只是举个例子,你重写这两个方法,可以把他转存到其它地方.比如说硬盘上.但你还要load出来.也就是说要符合webForm的机制 你说的也对但不完全对。实现了这个接口的不能用这种写法,其他的可以 IPostBackDataHandler 求学Asp.net+MsSql网站发布详细过程!!! 虚拟主机下使用Server.MapPath出现权限问题 Repeater绑定数据,首行样式不同。。 问一个小问题:在一个固定高度的单元格里插入表格,有的能全部显示,有的不能全部显示怎么回事? 前台显示的格式问题 DUWAMISH中问题,请研究过的进来看一下. 高手请指教,在DATAGRID中的删除按钮中加一个JAVASCRIPT的提示功能? 请教留言板的问题! 提交表单到web service 问题 问一个datagrid的问题 关于asp.net 定时 生成静态页面的问题,请解答一下 如何获得客户端IP地址信息
有没有人呀·
ViewState持久化保持在服务器端
如果你有一个非常酷的页面,页面上很多东西自动地响应用户操作而展现丰富的变化,你的ViewState是很有可能达到200K的。 这里是我将ViewState持久化保持在服务器端的代码,这样ViewState不占用网络带宽,因此其存取只是服务器的磁盘读取时间。并且它很小,可以说是磁盘随便转一圈就能同时读取好多ViewState,因此可以说“不占时间”。为了再“不占磁盘时间”,我还使用了缓存。
一下这段代码可以放在页面中,或者页面的父类中:
C# code
protected override object LoadPageStateFromPersistenceMedium()
{
var viewStateID = (string)((Pair)base.LoadPageStateFromPersistenceMedium()).Second;
var stateStr = (string)Cache[viewStateID];
if (stateStr == null)
{
var fn = Path.Combine(this.Request.PhysicalApplicationPath, @"App_Data/ViewState/" + viewStateID);
stateStr = File.ReadAllText(fn);
}
return new ObjectStateFormatter().Deserialize(stateStr);
}protected override void SavePageStateToPersistenceMedium(object state)
{
var value = new ObjectStateFormatter().Serialize(state);
var viewStateID = (DateTime.Now.Ticks + (long)this.GetHashCode()).ToString(); //产生离散的id号码
var fn = Path.Combine(this.Request.PhysicalApplicationPath, @"App_Data/ViewState/" + viewStateID);
ThreadPool.QueueUserWorkItem(obj => File.WriteAllText(fn, value));
Cache.Insert(viewStateID, value);
base.SavePageStateToPersistenceMedium(viewStateID);
}
protected override void SavePageStateToPersistenceMedium(object state)
{
base.SavePageStateToPersistenceMedium(state);
} protected override object LoadPageStateFromPersistenceMedium()
{
return base.LoadPageStateFromPersistenceMedium();
}
这样写是没有意义.但你也不能为null吧.你为null了.你的事件要执行才怪.我只是举个例子,你重写这两个方法,可以把他转存到其它地方.比如说硬盘上.但你还要load出来.也就是说要符合webForm的机制
IPostBackDataHandler