一、目前在ASP.NET中页面传值共有这么几种方式:

1、表单提交,    <form action= "target.aspx" method = "post" name = "form1"> <input name = "param1" value = "1111"/> <input name = "param2" value = "2222"/>    </form>    ....    form1.submit();    ....    此种方在ASP。NET中无效,因为ASP。NET的表单总是提交到自身页面,如果要提交到别一页面,需要特殊处理。 2、<A href="target.aspx?param1=1111&param2=2222">链接地址传送</A> 接收页面: string str = Request["param1"] 3、Session共享 发送页面:Session("param1") = "1111";  按收页面  string str = Session("param1").ToString();  4、Application共享 发送页面: Application("param1") = "1111";   按收页面: string str = Application("param1").ToString();  此种方法不常使用,因为Application在一个应用程序域范围共享,所有用户可以改变及设置其值,故只应用计数器等需要全局变量的地方。 5、Cookie 6、Response.Redirect()方式    Response.Redirect("target.aspx?param1=1111&param2=2222")    接收页面: string str = Request["param1"] 7、Server.Transfer()方式。    Server.Transfer("target.aspx?param1=1111&param2=2222")    接收页面: string str = Request["param1"]

二、如果在两个页面间需要大量的参数要传传递,如数据查询等页面时,用1 - 6的方法传值及其不便,而第 7 种方法确有一独特的优势!但使用该方法时需要一定的设置,现简单介绍一下该方法的使用方式:

  以查询数据页面为例:

在查询页面中设置如下公有属性(QueryPage.aspx):

public class QueryPage : System.Web.UI.Page { protected System.Web.UI.WebControls.TextBox txtStaDate; protected System.Web.UI.WebControls.TextBox txtEndDate;    ... /// <summary> /// 开始时间 /// </summary> public string StaDate { get{ return this.txtStaDate.Text;} set{this.txtStaDate.Text = value;} } /// <summary> /// 结束时间 /// </summary> public string EndDate { get{ return this.txtEndDate.Text;} set{this.txtEndDate.Text = value;} } .... private void btnEnter_Click(object sender, System.EventArgs e) { Server.Transfer("ResultPage.aspx"); } }

在显示查询结果页面(ResultPage.aspx):

public class ResultPage : System.Web.UI.Page {    private void Page_Load(object sender, System.EventArgs e)    { //转换一下即可获得前一页面中输入的数据 QueryPage queryPage = ( QueryPage )Context.Handler; Response.Write( "StaDate:" ); Response.Write( queryPage.StaDate ); Response.Write( "<br/>EndDate:" ); Response.Write( queryPage.EndDate );   } }

三、如果有许多查询页面共用一个结果页面的设置方法:

在这种方式中关键在于“ QueryPage queryPage = ( QueryPage )Context.Handler; ”的转换,只有转换不依赖于特定的页面时即可实现。

如果让所有的查询页面都继承一个接口,在该接口中定义一个方法,该方法的唯一作用就是让结果页面获得构建结果时所需的参数,就可实现多页面共享一个结果页面操作!

1、先定义一个类,用该类放置所有查询参数:

/// <summary> /// 结果页面中要用到的值 /// </summary> public class QueryParams { private string staDate; private string endDate; /// <summary> /// 开始时间 /// </summary> public string StaDate { get{ return this.staDate;} set{this.staDate = value;} } /// <summary> /// 结束时间 /// </summary> public string EndDate { get{ return this.endDate;} set{this.endDate = value;} } }

2、接口定义:

/// <summary> /// 定义查询接口。 /// </summary> public interface IQueryParams { /// <summary> /// 参数 /// </summary> QueryParams Parameters{get;} }

3、查询页面继承IQueryParams接口(QueryPage.aspx):

/// <summary> ///查询页面,继承接口 /// </summary> public class QueryPage : System.Web.UI.Page, IQueryParams { protected System.Web.UI.WebControls.TextBox txtStaDate; protected System.Web.UI.WebControls.TextBox txtEndDate; private QueryParams queryParams;    ... /// <summary> /// 结果页面用到的参数 /// </summary>    public QueryParams Parameters { get { return queryParams; } } .... private void btnEnter_Click(object sender, System.EventArgs e) { //赋值 queryParams = new QueryParams(); queryParams.StaDate = this.txtStaDate.Text; queryParams.EndDate = this.txtEndDate.Text Server.Transfer("ResultPage.aspx"); } }

4、别外的页面也如此设置

5、接收页面(ResultPage.aspx):

public class ResultPage : System.Web.UI.Page {    private void Page_Load(object sender, System.EventArgs e)    { QueryParams queryParams = new QueryParams(); IQueryParams queryInterface; //实现该接口的页面 if( Context.Handler is IQueryParams) { queryInterface = ( IQueryParams )Context.Handler; queryParams = queryInterface.Parameters; } Response.Write( "StaDate:" ); Response.Write( queryParams.StaDate ); Response.Write( "<br/>EndDate:" ); Response.Write( queryParams.EndDate );   } }

ASP.NET中页面传值的更多相关文章

  1. c#ASP.NET中页面传值共有这么几种方式

    一.目前在ASP.NET中页面传值共有这么几种方式: 1.Response.Redirect("http://www.hao123.com",false); 目标页面和原页面可以在 ...

  2. ASP.Net中页面传值的几种方式

    开篇概述 对于任何一个初学者来说,页面之间传值可谓是必经之路,却又是他们的难点.其实,对大部分高手来说,未必不是难点. 回想2016年面试的将近300人中,有实习生,有应届毕业生,有1-3年经验的,有 ...

  3. ASP.NET之页面传值

    一.目前在ASP.NET中页面传值共有这么几种方式: 1.使用QueryString变量QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中.如果是传递一个或多个安全 ...

  4. 关于asp.net中页面事件加载的先后顺序

    一.ASP.NET 母版页和内容页中的事件 母版页和内容页都可以包含控件的事件处理程序.对于控件而言,事件是在本地处理的,即内容页中的控件在内容页中引发事件,母版页中的控件在母版页中引发事件.控件事件 ...

  5. asp.net 跨页面传值常用方法

    常用方法有以下: 1.queryString 2.form-post控件传递 3.cookie 4.application 5.session querystring: http://website. ...

  6. ASP.NET跨页面传值技巧[总结]

    个人网站:http://www.51pansou.com .net视频下载:.net视频教程 .net源码下载:.net源码 关于页面传值的方法,我就我个人观点做了些总结,希望对大家有所帮助. 1.  ...

  7. MVC中页面传值方式总结

    MVC中的页面传值,通常指Controller和view之间的数据传递,经常用到的有几种方式,总结如下: 一.Controller----------->View(控制器传到视图) 1.View ...

  8. ASP.NET MVC教程四:ASP.NET MVC中页面传值的几种方式

    准备 在Models文件夹里面新添加Student实体类,用来模拟从Controller向View传递数据,Student类定义如下: using System; using System.Colle ...

  9. ASP.NET跨页面传值技巧

      1 使用QueryString变量    QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中.如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用  ...

随机推荐

  1. Android批量图片加载经典系列——使用二级缓存、异步网络负载形象

    一.问题描写叙述 Android应用中常常涉及从网络中载入大量图片,为提升载入速度和效率,降低网络流量都会採用二级缓存和异步载入机制.所谓二级缓存就是通过先从内存中获取.再从文件里获取,最后才会訪问网 ...

  2. windows已安装solr

    下载地址:http://archive.apache.org/dist/lucene/solr/ 操作环境:  Win7,Tomcat6, Solr4.3, Jdk6 下载solr4.3的包,解压到本 ...

  3. JS function立即调用的几种写法

    //立即执行 (function () { alert(1) })() //立即执行 !function () { alert(1) }() //立即执行 +function () { alert(1 ...

  4. 代码走查工具StyleCop建议采用的规则总结

    代码走查工具StyleCop建议采用的规则总结 续接上篇:代码走查工具篇SytleCop的规则总结与翻译,本篇主要是以我个人的观点总结的一份建议使用的Rule点. 建议使用的Rule点 1.公共的接口 ...

  5. Struts2 整合jQuery实现Ajax功能(2)

    1.1.1   Action利用struts2-json-plugin-X.X.X.jar响应Json格式信息: 1.      function removerecordbyid(recordid) ...

  6. 【百度地图API】如何利用地图API制作汽车沿道路行驶的动画?——如何获得道路层数据

    原文:[百度地图API]如何利用地图API制作汽车沿道路行驶的动画?--如何获得道路层数据 有几个做汽车导航的朋友问我说,他们想在地图上制作一辆车沿着道路行驶的动画.可是,百度地图的道路数据并没有公开 ...

  7. struts2基本介绍

    前言 文本 Struts2 Apache SoftWare Foundation Tomcat/Struts1/Struts2/Ibaitas/ MVC框架:Struts1/Struts2/JSF/W ...

  8. CSS3+HTML5特效5 - 震动的文字

    先看效果(把鼠标移上去看看) abcd 这个效果很简单,就是移动文字的位置模拟出震动的效果. Css <style> @-webkit-keyframes shake { 0%{ -web ...

  9. c# WebBrowser开发参考资料

    原文:c# WebBrowser开发参考资料 c# WebBrowser开发参考资料,所有资料的采集均来自网上 话说有了WebBrowser类,终于不用自己手动封装SHDocVw的AxWebBrows ...

  10. TCP通信中的大文件传送

    TCP通信中的大文件传送 源码   (为节省空间,不包含通信框架源码,通信框架源码请另行下载) 文件传送在TCP通信中是经常用到的,本文针对文件传送进行探讨 经过测试,可以发送比较大的文件,比如1个G ...