问题提出:当我们在编写ASP.NET程序时,通常要实现如下功能,例如:WebForm1.aspx是一个产品列表(通常有一个查询按钮),本页面有一个创建或者修改按钮,当点击该按钮时,迁移到另一页面WebForm2.aspx,本页面是指定产品信息页面,通常有一个保存按钮和返回按钮,当我们创建或者修改了产品信息,点击返回按钮返回到前一面,需要让WebForm1.aspx刷新,以便显示我们刚才添加或者修改的信息,通常的做法是在返回按钮的服务器事件中,使用Response.Redirct方法重定向到WebForm1.aspx页面.功能虽然实现了,但是原来在WebForm1.aspx中的状态全部丢失了,比如说,我们在WebForm1.aspx中输入了查询条件,当我们用Response.Redirct方法重定向的时候,WebForm1.aspx的查询条件丢失了,无法再次显示上次查询条件下的产品列表.下面是我的对这个问题的解决方案:
首先描述一下解决问题的步骤:
1.定义当前页的返回按钮的客户端ID(返回按钮最好使用客户端控件,不要runat=server)
2.定义可以使当前页面内容刷新的按钮(例如查询按钮)
3.记载当前页面的加载次数,如果只加载了一次,说明内容没有变化,那么可能在返回时就不需要刷新返回后的页面(视需求而定).
4.注册客户端返回按钮和刷新按钮的事件.
5.根据需求将需要不需要刷新的标记写入到客户端的cookie中,这样客户端就可以根据此标记决定是否刷新本页面
代码如下:
定义一个的页面基类PageBase,所有需要该功能的页面都需要从此基类继承
/// <summary>
/// 基页类
/// </summary>
public class PageBase : Page
{
/// <summary>
/// 获取或设置当前页面的加载次数
/// </summary>
private int LoadCoun