跨頁數據傳遞的兩種方式

選擇具有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.pswp.cn/news/276254.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/276254.shtml
英文地址,請注明出處:http://en.pswp.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…