一种新的页面导航方法
来源:互联网 发布:淘宝网游账号交易 编辑:程序博客网 时间:2024/04/28 17:49
目前在维护一个Web应用,感觉做页面间的导航确实麻烦,特别是页面间参数的传递,如果写的不好,看起来很是头疼。
正好有个机会,经理让把有些页面做成模式页面,打开模式页面仅仅能传递一个参数,当然这个参数可以是对象。但是如果为了传递参数就去构造很多类,又感觉太麻烦。
灵机一动,想了如下方法,目前运行良好,和大家分享。有不合适的地方,请批评指正。
此方法是为要打开的页面类添加个静态方法,例如有MsgInfo.aspx页面:
public static void Open(ParaType1 para1, (ParaType2 para2, string msgInfoUrl, Page thePage)
{
// 为页面静态变量复制
// 打开页面
}
其中前两个是传递的页面参数(当然多个也行了),第三个是要打开MsgInfo.aspx页面的页面相对于MsgInfo.aspx的相对url。如果在同一目录下,直接写MsgInfo.aspx就行了,第四个参数为要打开MsgInfo.aspx页面的页面Page对象。
优点:
使用方便,直接使用MsgInfo.Open(..)方法就行了。
可以传递任意多个参数,很适合打开模式页面。
传递的参数是强类型的,避免很多不必要的麻烦。
缺点:
使用了较多的静态变量,为了去除其负面影响,我一般在Page_Load()方法中加了 this.Response.Expires = 0;
注意:
有的时候我还想通过以前的方法实现页面导航,这是还想传递页面参数,我是通过以下方式处理的:
为每个参数写一个Get方法,在此方法中优先处理页面参数,如果没有页面参数,再处理Open方法传递的静态变量。
private string GetPara()
{
if(this.Page.Request.QueryString["Para"] == null)
{
// 返回静态变量
}
// 返回查询参数
}
正好有个机会,经理让把有些页面做成模式页面,打开模式页面仅仅能传递一个参数,当然这个参数可以是对象。但是如果为了传递参数就去构造很多类,又感觉太麻烦。
灵机一动,想了如下方法,目前运行良好,和大家分享。有不合适的地方,请批评指正。
此方法是为要打开的页面类添加个静态方法,例如有MsgInfo.aspx页面:
public static void Open(ParaType1 para1, (ParaType2 para2, string msgInfoUrl, Page thePage)
{
// 为页面静态变量复制
// 打开页面
}
其中前两个是传递的页面参数(当然多个也行了),第三个是要打开MsgInfo.aspx页面的页面相对于MsgInfo.aspx的相对url。如果在同一目录下,直接写MsgInfo.aspx就行了,第四个参数为要打开MsgInfo.aspx页面的页面Page对象。
优点:
使用方便,直接使用MsgInfo.Open(..)方法就行了。
可以传递任意多个参数,很适合打开模式页面。
传递的参数是强类型的,避免很多不必要的麻烦。
缺点:
使用了较多的静态变量,为了去除其负面影响,我一般在Page_Load()方法中加了 this.Response.Expires = 0;
注意:
有的时候我还想通过以前的方法实现页面导航,这是还想传递页面参数,我是通过以下方式处理的:
为每个参数写一个Get方法,在此方法中优先处理页面参数,如果没有页面参数,再处理Open方法传递的静态变量。
private string GetPara()
{
if(this.Page.Request.QueryString["Para"] == null)
{
// 返回静态变量
}
// 返回查询参数
}
- 一种新的页面导航方法
- 一种新的嵌套绑定的方法
- 一种新的单元测试的方法
- 一种新的走迷宫的方法
- 一种新的Web设计方法
- 一种新的C#简繁体转换方法
- 【select级联】一种新的方法
- Holacracy(合弄制)------一种新的管理方法
- 一种新的DEM人工编辑方法
- 一种新的单片机调试方法
- 生成静态页面的一种方法
- 页面自适应设备分辨率的一种方法
- 页面导航设计的快速验证方法
- 页面导航设计的快速验证方法
- 横向导航条页面居中的方法
- 页面内部导航控制div显示隐藏的新写法
- 命令行下一种新的加帐号的方法
- 命令行下一种新的加帐号的方法
- Web 下配置文件信息的读写
- ASP.NET图片验证码控件
- 哥哥真的没来
- 加密网站配置文件中的信息
- 循序渐进学习 Ajax 的途径[收集]
- 一种新的页面导航方法
- 有趣的多线程编程(1)——一个简单的例子
- 有趣的多线程编程(2)——线程中的参数传递
- 除夕夜
- 有趣的多线程编程(3)——线程内部是如何进行的?
- 有趣的多线程编程(4)——死锁
- 一个数据访问层的概要设计
- 数据访问层的数据库提供者接口和数据操作接口
- vc中的坐标转换(抗遗忘贴)