public class Search : System.Web.UI.Page
{
public ArrayList hasChecked = new ArrayList();
private void Page_Load(object sender, System.EventArgs e)
{
hasChecked = ……;
……;
……;
}
}
这样的代码,但是hasChecked的值在每次Page_Load以后都没有了,为什么?应该怎么写
{
public ArrayList hasChecked = new ArrayList();
private void Page_Load(object sender, System.EventArgs e)
{
hasChecked = ……;
……;
……;
}
}
这样的代码,但是hasChecked的值在每次Page_Load以后都没有了,为什么?应该怎么写
解决方案 »
- log4net 日志纪录为什么无缘无故就停止了呢?
- 在线编辑器eWebEditor上传图片怎么不起作用啊
- 关于CS下启动窗体的问题,能更换吗?
- [新手问题]关于ASP.NET2.0中的数据操作问题..
- asp.net中的一些基本概念问题
- 在微软官方网站下的WebControls,300多k的。但安装后没有Microsoft.Web.UI.WebControls.dll,怎么解决这个问题??
- 关于sql存储过程返回数据 asp.net接受并显示(分数不够 可以加)
- ASP.NET服务器控件开发简介: ComboBox [开放源代码]
- javascript应该怎样调用代码隐藏中cs文件中的函数呢
- 菜鸟问题:用ASP.net如何弹出一个新的网页?
- 请大家推荐“开发Web服务器控件”方面的文章,多谢!
- 请各位帮忙,关于分类汇总,谢谢!
这样岂不是很郁闷
hasChecked = ……;
……;
……;
前加
if( !IsPostBack )return;
public class Search : System.Web.UI.Page
{
public ArrayList hasChecked
{
get
{
return ViewState.Item("hasChecked");
}
set
{
ViewState.Item("hasChecked") = value;
}
} private void Page_Load(object sender, System.EventArgs e)
{
hasChecked = ……;
……;
……;
}
}
这样就可以了
{
hasChecked = ……;
……;
……;}
get{
if(this.ViewState.Item["hasChk"]==null
return new ArrayList();
else
return this.ViewState.Item["hasChk"];
}
set{
this.ViewState.Item["hasChk"]=value;
}
}当然这要求ArrayList中的每个元素保存的对象是可序列化的,例如boolean值。如果是保存Webcontrol或者自定义对象,就要为自定义对象实现Serializable接口,或者使用LoadViewState、SaveViewState方法绕开ViewState自己实现状态读取。