|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我感觉可以顶到50楼,出乎意料的是大家居然纷纷写出自己的博文,还被编辑做成了专题,置于首页头条。人人都晓得Asp.Net中利用ViewState来在客户端与服务端之间保留页面中的信息及用户自界说的信息.
在2.0之前的版本中,ViewState是保留在页面中的埋没控件中的:__VIEWSTATE
我们没法改动ViewState的保留体例及保留地位.
如今在2.0中,Asp.Net开放了这个功效,同意我自界说ViewState的保留地位.
在2.0的Page类中新增了一个属性:PageStatePersister.
我们能够重写这个属性来完成自界说ViewState的保留.这个属性要前往一个承继自PageStatePersister类的子类的一个实例.
2.0中默许供应了两种保留办法:一个是保留在页面中(HiddenFieldPageStatePersister),别的一个是保留在Session中(SessionPageStatePersister).
上面的代码重写了PageStatePersister属性,将ViewState保留到Session中:
protectedoverridePageStatePersisterPageStatePersister
{
get
{
returnnewSessionPageStatePersister(this);
}
}
除这两种默许的保留体例外,我们能够承继PageStatePersister类,来完成本人的保留体例.
以下的代码演示了假如将ViewState保留到文件中:
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
usingSystem.IO;
usingSystem.Runtime.Serialization.Formatters.Binary;
/**////<summary>
///CWingViewState的择要申明
///</summary>
publicclassCWingViewState:PageStatePersister
{
publicCWingViewState(Pagepage):base(page)
{
}
publicoverridevoidLoad()
{
ReadFile();
}
publicoverridevoidSave()
{
WriteFile();
}
privatevoidWriteFile()
{
FileStreamfile=File.Create(@"C:CustomerViewState.CW");
BinaryFormatterbf=newBinaryFormatter();
bf.Serialize(file,base.ViewState);
file.Flush();
file.Close();
}
privatevoidReadFile()
{
FileStreamfile=File.OpenRead(@"C:CustomerViewState.CW");
BinaryFormatterbf=newBinaryFormatter();
base.ViewState=bf.Deserialize(file);
}
}
详细的页面中:
protectedoverridePageStatePersisterPageStatePersister
{
get
{
returnnewCWingViewState(this);
}
}
出处:.Net空间BLOG
归根到底,Java跨平台可以,但是要重新编写代码,否则还分什么J2EE/J2SE/J2ME呢! |
|