日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

解讀ASP.NET 2.0跨網(wǎng)頁提交的三種方法(2)_.Net教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:揭秘設(shè)計(jì)ASP.NET應(yīng)用程序的七大妙招
隨著微軟.NET的流行,ASP.NET越來越為廣大開發(fā)人員所接受。作為ASP.NET的開發(fā)人員,我們不僅需要掌握其基本的原理,更要多多實(shí)踐,從實(shí)踐中獲取真正的開發(fā)本領(lǐng)。在我們的實(shí)際開發(fā)中,往往基本的原理滿足不了開發(fā)需求,我們更多的要積累一些開發(fā)技巧,本文就

六、從目標(biāo)頁面中獲得源頁面控件的值

ASP.NET2.0提供了一個(gè)叫PreviousPage的新的屬性,這個(gè)屬性無論在何時(shí)當(dāng)前頁面進(jìn)行跨網(wǎng)頁提交操作時(shí)都會指向源頁面。要注意的是,當(dāng)源頁面和目標(biāo)頁面在不同的應(yīng)用程序中時(shí),這個(gè)屬性包含null(這個(gè)null并不是未初始化的意思)。還有要注意的是當(dāng)目標(biāo)網(wǎng)頁訪問 PreviousPage屬性時(shí)可以獲得源頁面的數(shù)據(jù),ASP.NET運(yùn)行時(shí)裝載并執(zhí)行了源頁面。這將引發(fā)ProcessChildRequest事件的發(fā)生。而且,它還會引發(fā)Page_Init事件、Page_Load和任何其他的源頁面按鈕單擊事件。

因此,我們要避免由于不小心進(jìn)行誤操作,所以最好通過IsCrossPostBack屬性來確認(rèn)是否為一個(gè)跨網(wǎng)頁提交發(fā)生,如果這個(gè)屬性值為true,那么目標(biāo)網(wǎng)頁就是通過一個(gè)跨網(wǎng)頁提交動(dòng)作而調(diào)用的。如果是通過另外一種方式調(diào)用的(如一般的請求、Response.Redirect或是一個(gè)Server.Transfer),這個(gè)屬性的值為false。下面的例子演示了如何使用這個(gè)屬性。

if ( PreviousPage.IsCrossPagePostBack) { //執(zhí)行代碼 }

這個(gè)PreviousPage屬性在Server.Transfer和跨網(wǎng)頁提交中都可以使用。在ASP.NET2.0中,我們可以在調(diào)用Server.Transfer操作后使用PreviousPage屬性在目標(biāo)頁面中來獲得源頁面的數(shù)據(jù),代碼如下:

以下為引用的內(nèi)容:
{ Server.Transfer("menu.aspx"); } protected void Redirect_Click(object sender, EventArgs e)

在這個(gè)接收面中我們現(xiàn)在可以獲得Web頁面的數(shù)據(jù),代碼如下:

以下為引用的內(nèi)容:
protected void Page_Load(object sender, EventArgs e) { if (PreviousPage != null) { TextBox txtBox = (TextBox) PreviousPage.FindControl("txtUserName"); if (textBox != null) string userName = textBox.Text; //其他可執(zhí)行的代碼 } }

要注意的是上面的代碼必須將txtUserName控件轉(zhuǎn)換為TextBox類型,以便可以訪問其中的值。

七、使用PreviousPageType

PreviousPageType屬性提供了在跨網(wǎng)頁操作中訪問源頁面的強(qiáng)類型能力,下面讓我們演示一下如何不通過任何類型轉(zhuǎn)換來從源頁面中獲得控件值。代碼如下:

以下為引用的內(nèi)容:
< asp:Textbox ID="txtUserName" Runat="server" />< asp:Textbox ID="txtPassword" Runat="server" /> < asp:Button ID="Submit" Runat="server" Text="Login" PostBackUrl="Menu.aspx" />

要注意的是單擊按鈕可以重定向到一個(gè)叫“Menu.asp”的目標(biāo)頁。這個(gè)目標(biāo)頁可以使用如下的代碼獲得用戶名和密碼:

八、保存視圖狀態(tài)

對于跨網(wǎng)頁提交來說,ASP.NET 2.0 內(nèi)嵌了一個(gè)叫__POSTBACK的隱藏字段,這個(gè)字段包含了關(guān)于源頁面的視圖信息 -- 也就是由源頁面提供了,包含了一個(gè)帶有一個(gè)非空PostBackUrl屬性值的服務(wù)端控件。目標(biāo)頁可以使用__POSTBACK中的信息來獲得源頁面的視圖狀態(tài)信息。代碼如下:

以下為引用的內(nèi)容:
if(PreviousPage!=null && PreviousPage.IsCrossPagePostBack && PreviousPage.IsValid) { TextBox txtBox = PreviousPage.FindControl("txtUserName"); Response.Write(txtBox.Text); }

在上面的代碼中核對了用于確保PreviousPage屬性不為null的檢查代碼。順便提一下,如果目標(biāo)頁和源頁面不在同一個(gè)應(yīng)用程序中,這個(gè) PreviousPage屬性的值為null。只有在進(jìn)行跨網(wǎng)頁提交操作時(shí),IsCrossPagePostBack屬性才為true。

這個(gè)跨網(wǎng)頁提交的特性,是ASP.NET2.0中最強(qiáng)有力的特性之一,這種技術(shù)將允許在一個(gè)頁面中提交到另外一個(gè)頁面,并且可以在目標(biāo)頁面地?zé)o縫地操作源頁面中的數(shù)據(jù)。

分享:解析Web開發(fā)模式的顛覆者:ASP.NET MVC
2008年3月微軟針對ASP.NET 3.5發(fā)布的MVC框架(Preview 2 版本)是一個(gè)真正意義上的ASP.NET MVC框架。至今,短短4個(gè)月內(nèi)此框架已經(jīng)發(fā)展到Preview 4版本。許多國內(nèi)外業(yè)界人士稱該框架為其前基于Web表單開發(fā)模式的歷史性顛覆。本文站在對ASP.NET MVC框架與傳統(tǒng)AS

共2頁上一頁12下一頁
來源:模板無憂//所屬分類:.Net教程/更新時(shí)間:2009-06-27
相關(guān).Net教程