




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
WebForm页面间传值方法2008-03-19 21:22ASP.NET WEB FORMS 给开发者提供了极好的事件驱动开发模式。然而这种简单的应用程序开发模式却给我们带来了一些小问题,举个例子,在传统的ASP应用程序中,你能够通过POST方法很容易的把一个值或多个值从一个页面传送到另一个页面(request()/request.form()/request.querystring(),用同样的方法在ASP.NET中实现有点麻烦。在这里,通过其他方式来解决这种情形。ASP.NET为我们提供了三种方式,一种是可以通过用QueryString来传送相应的值,再一种是通过session变量来传送相应的值,还有就是通过Server.Transfer方法来实现。 一、使用QuerystringQuerystring是一种非常简单的传值方式,其缺点就是会把要传送的值显示在浏览器的地址栏中,并且在此方法中不能够传递对象。如果你想传递一个安全性不是那么太重要或者是一个简单的数值时,用此方法最好不过了。下面通过一个小例子来完成传值工作,步骤如下: 1、创建一个web form 2、在新建的web form中放置一个button1,在放置两个TextBox1,TextBox2 3、为button按钮创建click事件 代码如下:private void button_click(object sender,System.EventArgs e)string url;url=webform2.aspx?name=+TextBox1.Text + &Email=+TextBox2.Text;Response.Redirect(url);4、新建一个目标页面命名为webform2 5、在webform2中放置两个Label1,Label2 在webform2的Page_Load中添加如下代码:private void Page_Load(object sender,System.EventArgs e) Label1.Text=Request.QueryStringname; Label2.Text=Request.QueryStringEmail;运行,即可看到传递后的结果了。二、使用Session变量使用Session变量传值是一种最常见的方式了,此中方式不仅可以把值传递到下一个页面,还可以交叉传递到多个页面,直至把Session变量的值removed后,变量才会消失。举个例子看看: 1、创建一个web form 2、在新建的web form中放置一个button1,在放置两个TextBox1,TextBox2 3、为button按钮创建click事件 代码如下: private void button_click(object sender,System.EventArgs e) SessionName=TextBox1.Text; SessionEmail=TextBox2.Text; Response.Redirect(webform2.aspx);4、新建一个目标页面命名为webform2 5、在webform2中放置两个Label1,Label2 在webform2的Page_Load中添加如下代码:private void Page_Load(object sender,System.EventArgs e) Label1.Text=SessionName.ToString(); Label2.Text=SessionEmail.ToString(); Session.Remove(Name); Session.Remove(Email);运行,即可看到传递后的结果了。三、使用Server.Transfer虽然这种方法有点复杂,但也不失为一种在页面传值的方式。 举个例子看看: 1、创建一个web form 2、在新建的web form中放置一个button1,在放置两个TextBox1,TextBox2 3、为button按钮创建click事件 代码如下: private void (object sender,System.EventArgs e) Server.Transfer(webform2.aspx);4、创建过程来返回TextBox1,TextBox2控件的值代码如下:public string Name get return TextBox1.Text;public string Emailgetreturn TextBox2.Text;5、新建一个目标页面命名为webform2 6、在webform2中放置两个Label1,Label2 在webform2的Page_Load中添加如下代码:private void Page_load(object sender,System.EventArgs e)/创建webform的实例webform1 wf1;/获得实例化的句柄wf1=(webform1)Context.Handler;Label1.Text=wf1.Name;Label2.Text=wf1.Email;常见的就是这三种方法。=ASP.NET中页面传值2009-03-10 20:55一、目前在ASP.NET中页面传值共有这么几种方式:1、表单提交, . form1.submit(); . 此种方在ASP。NET中无效,因为ASP。NET的表单总是提交到自身页面,如果要提交到别一页面,需要特殊处理。2、链接地址传送接收页面: string str = Requestparam13、Session共享发送页面:Session(param1) = 1111; 按收页面 string str = Session(param1).ToString(); 4、Application共享发送页面: Application(param1) = 1111; 按收页面: string str = Application(param1).ToString(); 此种方法不常使用,因为Application在一个应用程序域范围共享,所有用户可以改变及设置其值,故只应用计数器等需要全局变量的地方。5、Cookie6、Response.Redirect()方式 Response.Redirect(target.aspx?param1=1111¶m2=2222) 接收页面: string str = Requestparam17、Server.Transfer()方式。 Server.Transfer(target.aspx?param1=1111¶m2=2222) 接收页面: string str = Requestparam1二、如果在两个页面间需要大量的参数要传传递,如数据查询等页面时,用1 6的方法传值及其不便,而第 7 种方法确有一独特的优势!但使用该方法时需要一定的设置,现简单介绍一下该方法的使用方式:以查询数据页面为例: 在查询页面中设置如下公有属性(QueryPage.aspx): public class QueryPage : System.Web.UI.Pageprotected System.Web.UI.WebControls.TextBox txtStaDate;protected System.Web.UI.WebControls.TextBox txtEndDate; ./ / 开始时间/ public string StaDateget return this.txtStaDate.Text;setthis.txtStaDate.Text = value;/ / 结束时间/ public string EndDateget return this.txtEndDate.Text;setthis.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( EndDate: );Response.Write( queryPage.EndDate );三、如果有许多查询页面共用一个结果页面的设置方法: 在这种方式中关键在于“ QueryPage queryPage = ( QueryPage )Context.Handler; ”的转换,只有转换不依赖于特定的页面时即可实现。如果让所有的查询页面都继承一个接口,在该接口中定义一个方法,该方法的唯一作用就是让结果页面获得构建结果时所需的参数,就可实现多页面共享一个结果页面操作!1、先定义一个类,用该类放置所有查询参数:/ / 结果页面中要用到的值/ public class QueryParamsprivate string staDate;private string endDate;/ / 开始时间/ public string StaDateget return this.staDate;setthis.staDate = value;/ / 结束时间/ public string EndDateget return this.endDate;setthis.endDate = value;2、接口定义:/ / 定义查询接口。/ public interface IQueryParams/ / 参数/ QueryParams Parametersget;3、查询页面继承IQueryParams接口(QueryPage.aspx):/ /查询页面,继承接口/ public class QueryPage : System.Web.UI.Page, IQueryParamsprotected System.Web.UI.WebControls.TextBox txtStaDate;protected System.Web.UI.WebControls.TextBox txtEndDate;private QueryParams queryParams; ./ / 结果页面用到的参数/ public QueryParams Parametersgetreturn queryParams;.private void btnEnter_Click(object sender, System.EventArgs e)/赋值queryParams = new QueryParams();queryParams.StaDate = this.txtStaDate.Text;queryParams.EndDate = this.txtEndDate.TextServer.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( EndDate: );Response.Write( queryParams.EndDate );理清页面跳转和页面传值问题作者:back_xiaomu来源:博客园发布时间:2009-12-01 17:05阅读:1170 次原文链接 收藏 虽然这个东西很基本,但是自己有时候还是很混乱,所以今天就小小的整理了下。 先给大家带来的是页面的跳转问题 以下是四种 打开新页面的方法. 1. 直接转向新页面,原页面不保留 Response.Redirect(Webform6.aspx?id=1); 2. 直接转向新页面,原页面不保留 nServer.Transfer(Webform6.aspx?id=1,true); 3. 打开新页面,原页面保留,但是两个页面都可以操作. nResponse.Write(window.open(Webform6.aspx?id=1,_blank,);); 4. 打开新页面,原页面保留,但只有子页面可以操作.只有关闭了子页面,父页页才能操作. string s=window.showModalDialog(Webform6.aspx?aa=+System.DateTime.Now.ToLongTimeString()+,newwin,dialogHeight: 610px; dialogWidth: 850px; dialogTop: 128px; dialogLeft: 170px; edge: Raised; center: Yes; help: no; resi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/SXFLXH 001-2024雷电防护工程开竣工报审服务规范
- 高中化学原电池课件
- 高三拍摄脚本课件
- 高三化学最后一课课件
- 离婚双方共同财产分割协议范本及实施要点
- 猪场租赁合同(带屠宰加工服务)完整版
- 离婚双方彩礼退还及婚后财产分配执行合同
- 离婚协议房产分割与子女教育支持专项合同
- 环保投资担保合同风险分析与责任承担条款
- 髋臼骨折课件
- 2025重庆市专业应急救援总队应急救援人员招聘28人考试参考题库及答案解析
- 2025年国际贸易业务员招聘考试试题集及答案
- 2025年建筑涂料采购专项合同
- 黑龙江省龙东地区2025届中考数学试卷(含解析)
- 高考化学一轮复习:硫及其化合物(好题冲关)原卷版
- 2025年城市环境监测评估标准评估方案
- 2025高考地理试题分类汇编:地球上的水含解析
- 2025年水面渔业养殖承包合同范本:水产养殖合作协议
- 水厂反恐知识培训内容课件
- 供应链金融操作指南
- 部编版语文六年级上册3《古诗词三首》(同步练习)(含答案)
评论
0/150
提交评论