跨页数据传递的两种方式

选择具有PostBackUrl属性的三个控件Button、LinkButton、ImageButton。PostBackUrl属性的值就是投递的页面URL。

要在接收页面按对象的方式接收投递页面的表单中的值有两种方式:

1、PreviousPage.FindControl(“控件变量名”),这个方法返回的是Control类型的变量(对象),假设这个控件对象是TextBox只要强制转换就可以访问它的属性

Demo:

打开vs2005/vs2008新建->网站->ASP.NET,创建后在默认的Default.aspx中设计如图:

打开源:

 

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
        <asp:Button ID="btnSubmit"  runat="server" Text="传递数据" />
    </div>
    </form>
</body>
</html>

 

新建web窗体NextPage.aspx

 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="NexPage.aspx.cs" Inherits="NexPage" %>
<%@ PreviousPageType VirtualPath="~/Default.aspx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
   
    </div>
    </form>
</body>
</html>

 

打开NextPage.aspx.cs

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class NexPage : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Control control = (TextBox)PreviousPage.FindControl("txtUserName");
        string conent = control.Text;
    }
}


 

 


2、在原始页面(投递页)中加入要在被投递页访问的表单元素对象的相应属性,就可以在被投递页自如的访问了,这看起来很奇怪,为什么你会感觉奇怪呢?这是因为你很容易忘记页面是一个类,而你要访问的控件只不过是类中的一个私有字段,给一个类中的私有字段加一个公开的属性是再自然不过的事情。

Demo:

打开vs2005/vs2008新建->网站->ASP.NET,创建后在默认的Default.aspx中设计如图:

这是查看源:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
        <asp:Button ID="btnSubmit" PostBackUrl="~/NextPage.aspx" runat="server" Text="传递数据" />
    </div>
    </form>
</body>
</html>

 

然后再打开Default.aspx.cs

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page

  //属性
    public TextBox TxtUserName
    {
        get { return this.txtUserName; }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
       
    }
}

 

 在资源管理器中添加新项中添加web窗体NextPage.aspx添加PreviousPageType 指令

 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="NextPage.aspx.cs" Inherits="NextPage" %>
<%@ PreviousPageType VirtualPath = "~/Default.aspx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
   
    </div>
    </form>
</body>
</html>

打开NextPage.aspx.cs

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class NextPage : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (this.PreviousPage != null)
        {//判断PreviousPage是否存在
            if (this.PreviousPage.IsCrossPagePostBack)
            {//判断页面是否跨页传递

                string conent = PreviousPage.TxtUserName.Text;//获取值
                //将值输出
                Response.Write(conent);
            }
        }
       
    }
}

 


处理跨页投递的代码面临着一种风险,如果请求不是由投递页发送过来的,那么代码访问的对象并不纯在,这将产生一个异常,使用IsCrossPagePostBack属性可以区别上述情形,此属性在投递页面属于Page对象Page.IsCrossPagePostBack(本页是否参与到跨页投递),在被投递页面访问时是这样的:PreviousPage.IsCrossPagePostBack(请求是否是来自投递页)
还要注意的一点是要检查一下PreviousPage是否存在this.PreviousPage  = = null

转载于:https://www.cnblogs.com/scsuns520/archive/2009/12/22/1630101.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/276254.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux批量杀进程_Linux下批量杀JAVA进程

在工作中经常需要停止JAVA进程&#xff0c;停止时间也比较长&#xff0c;那么有时候因为一些情况&#xff0c;需要把 linux 下JAVA所有进程kill 掉&#xff0c;又不能用killall 直接杀掉某一进程名称包含的所有运行中进程(我们可能只需要杀掉其中的某一类或运行指定参数命令的进…

用jquery1.9版本判断ie浏览器及ie6浏览器

参考链接&#xff1a;http://www.my0832.com/158182/blog-117887.html jQuery 从 1.9 版开始&#xff0c;移除了 $.browser 和 $.browser.version &#xff0c; 取而代之的是 $.support 。 在更新的 2.0 版本中&#xff0c;将不再支持 IE 6/7/8。 以后&#xff0c;如果用户需要…

嵌入式操作系统 NuttX 5.0 发布

Nuttx 是一个实时嵌入式操作系统&#xff08;RTOS&#xff09;&#xff0c;它有一个小巧是在微控制器的环境中使用。这是完全可扩展&#xff0c;从小型&#xff08;8位&#xff09;至中型嵌入式&#xff08;32位&#xff09;系统。它的目的还 在于要完全符合标准&#xff0c;完…

Windows下Mysql 的安装和卸载

2019独角兽企业重金招聘Python工程师标准>>> 一、安装 1、下载zip文件 2、解压&#xff0c;在bin目录下新建my.ini [mysql] # 设置mysql客户端默认字符集 default-character-setutf8 [mysqld] # 设置3306端口 port3306 # 设置mysql的安装目录 basedirC:\Program Fil…

现在学前端还来得及吗?总听人说饱和了

“前端已经饱和了&#xff0c;现在学前端没有前途了”每次听到这种论调我都气不打一处来。自己技艺不精&#xff0c;然后就说市场饱和了。是&#xff0c;现在的确不是那个会切个图&#xff0c;懂点htmlCSS就能找到工作的年代了。现在对前端的技术要求稍微高了点&#xff0c;但这…

jquery网页刷新后控件失效_jquery动态增减控件如何才能不刷新页面

已结贴√问题点数&#xff1a;20 回复次数&#xff1a;9jquery动态增减控件如何才能不刷新页面用jquery动态管理控件&#xff0c;可是每一次增减控件都会刷新页面&#xff0c;然后控件里面原来输入的值就都不在了&#xff0c;可以怎么来实现在动态增减控件时不刷新页面呢&#…

HTML代码 网页设置 QQ空间等分享

转载链接&#xff1a;http://zhidao.baidu.com/link?urlgpehGR7eSSyilECgVIOuZnDycBUjKABR2VubZAUSRD89qQrNhlCBxHuIUq9mQmvGaQy2RUSw1gAx614JlroXFK 右边&#xff1a; <!-- Baidu Button BEGIN --> <script type"text/javascript" id"bdshare_js&qu…

固定资产减值准备与累计折旧会计核算的关系

转载http://hi.baidu.com/ddumy/blog/item/d96b361901776e7ddab4bdd6.html固定资产减值准备与累计折旧会计核算的关系【摘 要】 固定资产减值准备与累计折旧是固定资产核算的重要组成部分&#xff0c;又都是“固定资产”的备抵项目&#xff0c;它们共同反映着固定资产的现时价值…

DotNetNuke 5 C#版本解读之2--HTTP Modules

在前面文章里说明了DNN的架构&#xff0c;下面这个图应该说是更加能够全面的让你去了解它的结构&#xff1a; 如果你是个asp.net新手建议你看看前面这部分&#xff0c;因为它会向你介绍什么是http module,以及其他的一些概念。我想通过你读这篇文章来明白asp.net的机制&#xf…

用框架的你,可能早已忽略了这些事件API

DOMContentLoaded&#xff0c;load&#xff0c;beforeunload&#xff0c;unloadHTML 页面的生命周期包含三个重要事件&#xff1a;DOMContentLoaded —— 浏览器已完全加载 HTML&#xff0c;并构建了 DOM 树&#xff0c;但像 <img> 和样式表之类的外部资源可能尚未加载完…

调用接口登录禅道_有java调用api登录并验证禅道的实例吗

展开全部本文实例为大家分享了32313133353236313431303231363533e78988e69d8331333363396466JAVA的短信验证码api调用代码&#xff0c;供大家参考&#xff0c;具体内容如下import java.io.BufferedReader;import java.io.DataOutputStream;import java.io.IOException;import j…

[Docker]Docker快速上手学习笔记

0. 学习的一些疑问 如何热更新镜像(images)&#xff1f;&#xff08;你可以快速启动或者销毁容器。这种时间几乎是实时的&#xff09;如何热更新游戏服&#xff1f;好处在于各个应用之间环境相互独立&#xff0c;即使某一个容器崩溃也不会影响到其它容器&#xff1b;每个容器使…

原来 Clipboard 还能复制图像?原理是什么

在写了 这个 29.7 K 的剪贴板 JS 库有点东西&#xff01; 这篇文章之后&#xff0c;收到了小伙伴提的两个问题&#xff1a;1.clipboard.js 这个库除了复制文字之外&#xff0c;能复制图像么&#xff1f;2.clipboard.js 这个库依赖的 document.execCommand API 已被废弃了&…

计算机大数据的前景方向_计算机方向,网络与信息安全和大数据哪个前景好一点?...

大数据是我目前的研究方向之一&#xff0c;我也曾经做过网络安全相关的项目&#xff0c;主要涉及的是各种网络环境下数据传输的安全处理方案。另外&#xff0c;我曾经给高校的学生做过网络安全的系列讲座&#xff0c;系统地整理过网络安全的相关内容&#xff0c;所以我来谈一谈…

Smarty 显示大括号 | 在Smarty中计算数组元素的长度 | Smarty字符串拼接

参考链接&#xff1a;http://hi.baidu.com/bdusnb/item/289d160e6a9c92cd9157183d 参考链接&#xff1a;http://hi.baidu.com/mayimu789/item/b565088d047da0d05f0ec16f 参考链接&#xff1a;http://blog.sina.com.cn/s/blog_8155e74d0101el2k.html Smarty 3 &#xff1a;大…

ftp协议分析(一)

作者: 肖建彬 | 可以转载, 转载时务必以超链接形式标明文章原始出处和作者信息及版权声明网址&#xff1a;http://www.xiaojb.com/archives/it/ftp.shtml根据是使用port模式还是passive模式&#xff0c;ftp使用不同的tcp端口号&#xff0c;在详细描述ftp前&#xff0c;我们来简…

JavaScript 元编程

大家好&#xff0c;我是若川。今天给分享一篇来自freecodecamp的好文。我是freecodecamp杭州社区组织者之一&#xff0c;有一群小伙伴一起组织线下分享活动&#xff0c;不过2020年我们杭州社区几乎没有活跃&#xff0c;我也没有什么贡献。另外&#xff0c;我的公众号「若川视野…

python 异常处理模块_扩展Python模块系列(五)----异常和错误处理

在上一节中&#xff0c;讨论了在用C语言扩展Python模块时&#xff0c;应该如何处理无处不在的引用计数问题。重点关注的是在实现一个C Python的函数时&#xff0c;对于一个PyObject对象&#xff0c;何时调用Py_INCREF和Py_DECREF。在编写C语言代码时&#xff0c;需要了解Python…

常见的php笔试题(附答案)搜集整理

转载链接&#xff1a;http://www.yaojinbu.com/p/139.html 常见的php笔试题&#xff08;附答案&#xff09;搜集整理 1.在PHP中&#xff0c;当前脚本的名称&#xff08;不包括路径和查询字符串&#xff09;记录在哪个预定义变量中&#xff1f;而链接到当前页面的URL又记录在哪个…

Js整理备忘(02)——运算符

1、运算符的表示以及优先级 Javascript&#xff08;以下简写为Js&#xff09;的大部分运算符与C或Java是类似的。 记得刚学C语言时老师讲的优先级口诀&#xff0c;非常好记&#xff1a;“括、单、算、移、关”“位、逻、条、赋、逗”&#xff0c;此处也可以套用一下&#xff0c…