亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ASP.NET跨頁提交功能的實現方法

發布時間:2021-07-15 10:28:20 來源:億速云 閱讀:187 作者:chen 欄目:編程語言

這篇文章主要講解了“ASP.NET跨頁提交功能的實現方法”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“ASP.NET跨頁提交功能的實現方法”吧!

標準HTML表單(form元素)允許你向另外一個頁面或者應用程序傳遞和發送數據信息,方法是使用表單元素。在ASP.NET 1.x中,網頁則利用投遞機制,把頁面數據提交給該頁本身。下面就讓我們來探討這個新特性:

傳統ASP.NET跨頁提交方法

為了便于比較,我們來回顧網頁傳遞數據的老方法。HTML的表格元素有一個action(動作)屬性,用來指定服務器端哪項資源(所謂資源,是指一個網頁、一段腳本、程序等)來處理這些提交的數據。下面的代碼便是一個樣例。

以下是引用片段:

〈html〉  〈head〉〈title〉Sample HTML form〈/title〉〈/head〉  〈body〉  〈form name="frmSample" method="post" action="target_url"〉  〈input type="text" name="fullname" id="fullname" /〉  〈input type="button" name="Submit" value="submit" /〉  〈/form〉  〈/body〉  〈/html〉

在文本域(名字是fullname)中輸入的值將被提交給表單元素的action屬性指定的頁面或者程序。對于ASP.NET開發者,即使曾經用過標準HTML表單,也是極不多見的。

ASP.NET開發者面對要從一個網頁向另一個網頁傳遞數據信息的任務時,方法選擇的余地是異常廣闊的。它們包括會話變量(session variables)、cookies、querystring 變量、caching(網頁緩存),甚至Server.Transfer方法,但是SP.NET跨頁提交還提供了另外一種選擇。

SP.NET跨頁提交的又一辦法

在設計ASP.NET 2.0的時候,微軟認識到了在網頁間交叉傳遞數據的需求。有了這個意識之后,就為ASP.NET的button(按鈕)控件增加了一項 PostBackUrl屬性。它允許你在用戶提交的時候,指明這張表單和上面的數據送往何方(也就是由PostBackUrl屬性指定的URL值確定)。一般來講,跨頁傳遞是客戶端在后臺使用JavaScript進行傳送的過程。

以下是引用片段:

〈%@ Page language="vb" %〉  〈!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML   4.0 Transitional//EN" 〉  〈html〉〈head〉  〈title〉Cross Postback Example〈/title〉  〈/head〉〈body〉  〈form id="frmCrossPostback1" method="post"   runat="server"〉  〈asp:Label ID="lblName" runat="server" Text="Name:"〉  〈/asp:Label〉  〈asp:TextBox ID="txtName" runat="server"〉  〈/asp:TextBox〉〈br /〉  〈asp:Label ID="lblE-mailAddress" runat="server"   Text="E-mail:"〉〈/asp:Label〉  〈asp:TextBox ID="txtE-mailAddress" runat="server"〉  〈/asp:TextBox〉〈br /〉   〈asp:Button ID="btnSubmit" runat="server"   Text="Submit" PostBackUrl="CrossPostback2.aspx" /〉  〈/form〉  〈/body〉  〈/html〉

ASP.NET頁面擁有兩個文本域(分別表示name(名字)和e-mail(電子郵件)),以及一個用來提交數據的button(按鈕)。這個提交按鈕的PostBackUrl屬性被指定為另外一個網頁,這樣使得表單提交的時候,數據可以發送到那個頁面。注意:這個例子中,表單元素通過設置 method(方法)屬性,讓表單提交時采用post[2]提交方式,但這不是必要的,因為所有cross postback(跨頁投遞)根據設計均使用post方法。

使用先前頁面

ASP.NET頁面經由跨頁投遞的調用而載入的時候,它上面的對象的IsPostBack屬性不會被觸發。不過,有一項叫做PreviousPage(前一頁)的屬性使你能夠訪問和使用那些應用跨頁投遞的頁面。

每當一個跨頁請求發生時,當前頁的PreviousPage屬性就把促發投遞的頁面引用保存下來。如果頁面的產生不是來自跨頁投遞的激發,或者說頁面處于不同的程序組,那么PreviousPage屬性將不會被初始化。

你可以通過檢查PreviousPage對象來確定頁面的載入是否為跨頁投遞的結果。值如果為null,則說明是普通的載入,而非null值則表明網頁來自跨頁投遞。此外,頁面類(Page class)還包含了一個稱作IsCrossPagePostBack的方法(method),專門用來確定頁面是不是跨頁投遞的結果。

一旦確定發生了跨頁投遞,你就可以通過PreviousPage對象的FindControl方法去訪問調用頁(calling page)上的控件。下面的代碼是我們例子中的第二頁;它由前面列出的頁面所調用。

以下是引用片段:

〈%@ Page language="vb" %〉  〈!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML   4.0 Transitional//EN" 〉  〈html〉〈head〉  〈title〉Cross Postback Example 2〈/title〉  〈/head〉〈body〉  〈script language="vb" runat="server"〉  Sub Page_Load()  If Not (Page.PreviousPage Is Nothing) Then If Not (Page.IsCrossPagePostBack) ThenResponse.Write  ("Name:" + CType(PreviousPage.FindControl("txtName"),   TextBox).Text + "〈BR〉")Response.Write("E-mail:" +   CType(PreviousPage.FindControl("txtE-mailAddress"),   TextBox).Text + "〈BR〉")   End If  End If  End Sub  〈/script〉  〈/body〉  〈/html〉

這個頁先判斷它是不是由跨頁投遞所調用。如果是,就通過FindControl方法訪問來自調用頁的數值,并把用此方法得到的控件轉換為TextBox控件,然后顯示它們的Text(文本)屬性的內容。

你可以把整個PreviousPage對象轉換成觸發跨頁投遞的頁面類型。這個方法允許你訪問頁面的全局屬性(public properties)和方法。下面代碼是添加了兩個屬性的***個清單,這兩個屬性用于訪問域值。

以下是引用片段:

〈%@ Page language="vb" % 〉  〈!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML   4.0 Transitional//EN"  〉  〈html 〉〈head 〉  〈title 〉Cross Postback Example〈/title 〉  〈script language="vb" runat="server" 〉  Public ReadOnly Property Name Get  Return Me.txtName.Text  End Get  End Property  Public ReadOnly Property E-mailAddress  Get  Return Me.txtE-mailAddress.Text  End Get  End Property  〈/script 〉〈/head 〉〈body 〉  〈form id="frmCrossPostback1" method="post"   runat="server" 〉  〈asp:Label ID="lblName" runat="server"   Text="Name:" 〉〈/asp:Label 〉   〈asp:TextBox ID="txtName" runat="server" 〉  〈/asp:TextBox 〉〈br / 〉  〈asp:Label ID="lblE-mailAddress" runat="server"   Text="E-mail:" 〉〈/asp:Label 〉  〈asp:TextBox ID="txtE-mailAddress" runat="server" 〉  〈/asp:TextBox 〉〈br / 〉  〈asp:Button ID="btnSubmit" runat="server"   Text="Submit" PostBackUrl="CrossPostback2.aspx" / 〉  〈/form 〉  〈/body 〉  〈/html 〉

既然現在屬性已經建好,那你就能很容易訪問它們。要警惕的是,Page類的PreviousPage對象必須轉換成正確的類型,這樣才能正確訪問它的屬性。這可以通過把它轉換成合適的page類別的對象加以實現。

以下是引用片段:

〈%@ Page language="vb"% 〉  〈%@ Reference Page="~/CrossPostback1.aspx" % 〉  〈!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML   4.0 Transitional//EN"  〉  〈html 〉  〈head 〉  〈title 〉Cross Postback Example 3〈/title 〉  〈/head 〉〈body 〉  〈script language="vb" runat="server" 〉  Sub Page_Load()  Dim cppPage As CrossPostback1_aspx  If Not (Page.PreviousPage Is Nothing) Then If Not (Page.IsCrossPagePostBack) Then If (Page.PreviousPage.IsValid)   ThencppPage = CType(PreviousPage, CrossPostBack1_aspx)  Response.Write("Name:" + cppPage.Name + "〈br 〉")  Response.Write("E-mail:" + cppPage.E-mailAddress)   End If  End If  End If  End Sub  〈/script 〉  〈/body 〉  〈/html 〉

說明了這一點,它在頁面頭部定義了調用頁的一項引用,那樣這個引用類型就能在代碼中使用。通過這項引用,實際的VB.NET代碼使用CType函數把PreviousPage對象轉換成了適當的類型。這之后,那些屬性就可以像代碼示范的那樣使用了。

關于上述清單中PreviousPage對象IsValid方法的使用在此提醒一下:前頁的IsValid屬性保證你對它操作之前,它已通過所有合法驗證測試。

總結

在網頁間傳遞數據參數有很多項應用,包括保持個人用戶信息。祖傳的網頁解決方案,像使用querystring和cookies,允許你很容易當提交發生時從一個頁面指向另一個頁面。

ASP.NET 1.1除了提供額外方法外,對這些方法也能很好地支持,可是,ASP.NET跨頁提交功能,使這方面又有了長足發展。它讓一個網頁處理來自另一網頁的數據變得簡單。在你開發你的下一個ASP.NET 2.0程序的時候,可要好好利用這個新概念的優勢啊。

感謝各位的閱讀,以上就是“ASP.NET跨頁提交功能的實現方法”的內容了,經過本文的學習后,相信大家對ASP.NET跨頁提交功能的實現方法這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

焉耆| 青龙| 灌阳县| 衡阳县| 涟源市| 大新县| 利川市| 宿松县| 嘉荫县| 凤台县| 吉木乃县| 莱西市| 三都| 望奎县| 凌云县| 清水河县| 富平县| 阳高县| 南充市| 丹阳市| 合肥市| 天气| 无极县| 临夏市| 斗六市| 余姚市| 明水县| 游戏| 永州市| 论坛| 青川县| 兴和县| 沅江市| 淅川县| 贵州省| 禄劝| 孟津县| 鹿邑县| 高阳县| 湛江市| 高邮市|