页面无限跳转间如何保存页面状态(2)

原创 2004年02月07日 22:56:00
解决方法的实现
       以上分析过了之后,我们来看如何实现他:
       class DataInfo:这个类用于保存数据状态,一般而言,也就是每个DataGrid对应一个:
[Serializable()]
     public class DataInfo
     {
         private string dataName;
         private Hashtable searchParams;
         private Hashtable otherParams;
         private int currentPage;
         private string sortExpression;
         private string itemID;
 
         public DataInfo(string dataName)
         {
              this.dataName = dataName;
         }
 
         /// <summary>
         /// 数据名
         /// </summary>
         public string DataName
         {
              get { return dataName; }
         }
         /// <summary>
         /// 查询参数
         /// </summary>
         public Hashtable SearchParams
         {
              get { return searchParams; }
              set { searchParams = value; }
         }
 
         /// <summary>
         /// 获取其他参数
         /// </summary>
         public Hashtable OtherParams
         {
              get { return otherParams; }
              set { otherParams = value; }
         }
 
         /// <summary>
         /// 获取当前页
         /// </summary>
         public int CurrentPage
         {
              get { return currentPage; }
              set { currentPage = value; }
         }
 
         /// <summary>
         ///获取排序方式
         /// </summary>
         public string SortExpression
         {
              get { return sortExpression ;}
              set { sortExpression = value; }
         }
 
         /// <summary>
         /// 获取要显示在当前页的项的ID
         /// </summary>
         public string ItemID
         {
              get { return itemID; }
              set { itemID = value; }
         }
     }
 
class DataInfoList:这个类包装承载DataInfo的动态数组,限定数组输入输出的数据类型
[Serializable()]
     public class DataInfoList
     {
         private ArrayList dataInfoList = new ArrayList();
 
         public DataInfo this[int index]
         {
              get
              {
                   return (DataInfo)dataInfoList[index];
              }
              set
              {
                   if (((DataInfo)dataInfoList[index]).DataName == value.DataName || this[value.DataName] == null)
                   {
                       dataInfoList[index] = value;
                   }
                   else
                   {
                       throw new Exception("There have a DataInfo used this Name yet!");
                   }
              }
         }
 
         public DataInfo this[string dataName]
         {
              get
              {
                   for (int i = 0; i < dataInfoList.Count; i++)
                   {
                       if (this[i].DataName == dataName)
                       {
                            return this[i];
                       }
                   }
                   return null;
              }
              set
              {
                   for (int i = 0; i < dataInfoList.Count; i++)
                   {
                       if (this[i].DataName == dataName)
                       {
                            this[i] = value;
                            return;
                       }
                   }
                   this.Add(value);
              }
         }
 
         public void Remove(DataInfo value)
         {
              dataInfoList.Remove(value);
         }
 
         public void Remove(string dataName)
         {
              DataInfo dataInfo = this[dataName];
              if (dataInfo != null)
              {
                   dataInfoList.Remove(dataInfo);
              }
         }
 
         public bool Contains(DataInfo value)
         {
              return dataInfoList.Contains(value);
         }
 
         public bool Contains(string dataName)
         {
              DataInfo datainfo = this[dataName];
              if (datainfo != null)
              {
                   return true;
              }
              return false;
         }
 
         public void Clear()
         {
              dataInfoList.Clear();
         }
 
         public int Add(DataInfo value)
         {
              if (this[value.DataName] == null)
              {
                   return dataInfoList.Add(value);
              }
              else
              {
                   throw new Exception("There have a DataInfo used this Name yet!");
              }
         }
 
         public int Count
         {
              get
              {
                   return dataInfoList.Count;
              }
         }
     }
 
interface IPageInfo:这个接口用在页面中,以实现页面间的数据通信。
public interface IPageInfo
     {
         /// <summary>
         /// 页面名
         /// </summary>
         string PageName
         {
              get;
         }
         /// <summary>
         /// 获取数据信息
         /// </summary>
         DataInfoList DataInfos
         {
              get;
         }
        
         /// <summary>
         /// 获取其他参数
         /// </summary>
         Hashtable OtherParams
         {
              get;
         }
     }

 

(未完待续)

【ionic App问题总结系列】ionic登录拦截机制-使用Modal作为登录框

前言先来说说网页和App中交互的不同。在网页中,页面与页面之间的跳转过程较少会采用转场动画,直接就是页面切换。 而在App的交互方式中,页面切换是有转场动画的。页面进入一般都是从右到左的动画切换。这...
  • qq673318522
  • qq673318522
  • 2016年11月19日 22:54
  • 2916

Activity页面状态保存 持久化

本文介绍Android中关于Activity的两个神秘方法:onSaveInstanceState() 和 onRestoreInstanceState(),并且在介绍这两个方法之后,再分别来实现使用...
  • LANG791534167
  • LANG791534167
  • 2014年08月13日 22:23
  • 1700

html5、jquery怎样实现在回到历史页面时完全保留之前离开这个页面时的状态?

三个方法 1,hash 2,localstroge 3,cookie
  • orichisonic
  • orichisonic
  • 2015年11月03日 18:55
  • 4536

安卓基础--自定义无限轮播的轮播图,可动态添加指示点,可点击跳转页面

android自定义无限轮播的轮播图,可动态添加指示点,可点击跳转页面。
  • fishandbean
  • fishandbean
  • 2016年11月02日 11:27
  • 377

Struts2简单的页面跳转示例

  • 2015年11月19日 15:00
  • 3.51MB
  • 下载

halloword2 - 跳转页面

  • 2017年02月16日 11:59
  • 24.63MB
  • 下载

ionic开发之登录状态判断,页面跳转

在项目开发中,经常会碰到有些页面要登录才能显示,一般都是在页面加载后,判断用户登录状态,未登录的话就跳转到登录页,但是在ionic开发的时候,如果在进入了页面后再判断登录状态跳转的话,当前这个页面会被...
  • mygrilzhuyulin
  • mygrilzhuyulin
  • 2016年10月17日 15:22
  • 1916

AOP 面向切面编程

AOP 面向切面编程 1.使用场景还原 当我们打开京东 app 进入首页,如果当前是没有网络的状态,里面的按钮点击是没有反应的。只有当我们打开网络的情况下,点击按钮才能跳转页面.按照我们一般人写代...
  • hunter_cg
  • hunter_cg
  • 2017年11月30日 18:41
  • 48

JSP中对页面跳转的不同方法引出HTTP无状态的应对方法

首先我们来看今天所学应用到的一个例子,当我们做了一个登陆页面,提交表单后往往需要跳转到另外一个页面。这里可以用两个方法,方法如下: 1.response用法: response.sendRedirec...
  • u014381710
  • u014381710
  • 2015年03月31日 18:09
  • 590

silverlight实现页面跳转,保存上次的页面访问的状态,像手机应用一样

首先定义个主的xaml,把其中默认的grid删掉。 然后在App_start中,写入 new page1(); 在page1的构造中把 this.content = ?,这里的?表示的是一个Use...
  • allan_wina_hsy
  • allan_wina_hsy
  • 2013年04月12日 03:12
  • 476
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:页面无限跳转间如何保存页面状态(2)
举报原因:
原因补充:

(最多只允许输入30个字)