ASP.NET2.0向其它網(wǎng)頁(yè)傳遞信息的方法(2)_.Net教程
推薦:遷移你的Web頁(yè)面到ASP.NET AJAX 1.0如果你在Web站點(diǎn)中使用了AtlasControlToolkit,那么這篇文章有助于遷移你的Web頁(yè)面到ASP.NETAJAX1.0,翻譯自ASP.NETAJAXControlToolkit網(wǎng)站。 隨著ASP.NETAJAX1.0Beta版的發(fā)布,帶來(lái)了很多根本
你可以通過(guò)檢查PreviousPage對(duì)象來(lái)確定頁(yè)面的載入是否為跨頁(yè)投遞的結(jié)果。值如果為null,則說(shuō)明是普通的載入,而非null值則表明網(wǎng)頁(yè)來(lái)自跨頁(yè)投遞。此外,頁(yè)面類(Page class)還包含了一個(gè)稱作IsCrossPagePostBack的方法(method),專門(mén)用來(lái)確定頁(yè)面是不是跨頁(yè)投遞的結(jié)果。
一旦確定發(fā)生了跨頁(yè)投遞,你就可以通過(guò)PreviousPage對(duì)象的FindControl方法去訪問(wèn)調(diào)用頁(yè)(calling page)上的控件。清單B中的代碼是我們例子中的第二頁(yè);它由前面列出的頁(yè)面所調(diào)用。
這個(gè)頁(yè)先判斷它是不是由跨頁(yè)投遞所調(diào)用。如果是,就通過(guò)FindControl方法訪問(wèn)來(lái)自調(diào)用頁(yè)的數(shù)值,并把用此方法得到的控件轉(zhuǎn)換為T(mén)extBox控件,然后顯示它們的Text(文本)屬性的內(nèi)容。
你可以把整個(gè)PreviousPage對(duì)象轉(zhuǎn)換成觸發(fā)跨頁(yè)投遞的頁(yè)面類型。這個(gè)方法允許你訪問(wèn)頁(yè)面的全局屬性(public properties)和方法。在我給出這項(xiàng)技術(shù)的實(shí)例之前,我有必要重寫(xiě)第一個(gè)例子,包含進(jìn)一些全局屬性。清單C是添加了兩個(gè)屬性的第一個(gè)清單,這兩個(gè)屬性用于訪問(wèn)域值。
既然現(xiàn)在屬性已經(jīng)建好,那你就能很容易訪問(wèn)它們。要警惕的是,Page類的PreviousPage對(duì)象必須轉(zhuǎn)換成正確的類型,這樣才能正確訪問(wèn)它的屬性。這可以通過(guò)把它轉(zhuǎn)換成合適的page類別的對(duì)象加以實(shí)現(xiàn)。
清單 D說(shuō)明了這一點(diǎn),它在頁(yè)面頭部定義了調(diào)用頁(yè)的一項(xiàng)引用,那樣這個(gè)引用類型就能在代碼中使用。通過(guò)這項(xiàng)引用,實(shí)際的VB.NET代碼使用CType函數(shù)把PreviousPage對(duì)象轉(zhuǎn)換成了適當(dāng)?shù)念愋汀_@之后,那些屬性就可以像代碼示范的那樣使用了。
關(guān)于上述清單中PreviousPage對(duì)象IsValid方法的使用在此提醒一下:前頁(yè)的IsValid屬性保證你對(duì)它操作之前,它已通過(guò)所有合法驗(yàn)證測(cè)試。
總結(jié)
在網(wǎng)頁(yè)間傳遞數(shù)據(jù)參數(shù)有很多項(xiàng)應(yīng)用,包括保持個(gè)人用戶信息。祖?zhèn)鞯木W(wǎng)頁(yè)解決方案,像使用querystring和cookies,允許你很容易當(dāng)提交發(fā)生時(shí)從一個(gè)頁(yè)面指向另一個(gè)頁(yè)面。
ASP.NET 1.1除了提供額外方法外,對(duì)這些方法也能很好地支持,可是,ASP.NET 2.0依靠跨頁(yè)投遞,使這方面又有了長(zhǎng)足發(fā)展。它讓一個(gè)網(wǎng)頁(yè)處理來(lái)自另一網(wǎng)頁(yè)的數(shù)據(jù)變得簡(jiǎn)單。在你開(kāi)發(fā)你的下一個(gè)ASP.NET 2.0程序的時(shí)候,可要好好利用這個(gè)新概念的優(yōu)勢(shì)啊。
|
[NextPage] < !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> |
分享:用事實(shí)說(shuō)話!AJAX應(yīng)用程序開(kāi)發(fā)七宗罪AJAX bandwagon是個(gè)好去處。它帶給你更快、更高效、更強(qiáng)動(dòng)態(tài)的應(yīng)用。但它也有自身的缺陷。
初一看,具備一些常識(shí)似乎就能避免這些缺陷,在一定程度上,的確如此。但從DHTML起源來(lái)看,AJAX應(yīng)用
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實(shí)例(可帶附件)
- js實(shí)現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實(shí)現(xiàn)
- Asp.Net 無(wú)刷新文件上傳并顯示進(jìn)度條的實(shí)現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見(jiàn)代碼存在的偽造IP問(wèn)題探討
- VS2010 水晶報(bào)表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(kù)(連接字符串的配置及獲取)
- asp.net頁(yè)面?zhèn)髦禍y(cè)試實(shí)例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲(chǔ)過(guò)程實(shí)現(xiàn)分頁(yè)示例代碼
.Net教程Rss訂閱編程教程搜索
.Net教程推薦
- 解讀.Net技術(shù)開(kāi)發(fā)中兩個(gè)“屬性”引起的歧異
- ASP.NET筆記之頁(yè)面跳轉(zhuǎn)、調(diào)試、form表單、viewstate、cookie的使用說(shuō)明
- 注冊(cè)頁(yè)實(shí)現(xiàn)激活郵箱驗(yàn)證(asp.net c#)
- 使用asp.net的pageDataSource中時(shí)索引問(wèn)題解決方法
- 再議ASP.NET DataGrid控件中的“添加新行”功能
- 解析簡(jiǎn)單實(shí)用的DataGrid自定義分頁(yè)源程序
- 七招制勝ASP.NET應(yīng)用程序開(kāi)發(fā)
- 解析Web開(kāi)發(fā)模式的顛覆者:ASP.NET MVC
- 解讀.NET 2.0中Hashtable快速查找的方法
- 解析linq to xml操作XML的示例分析
- 相關(guān)鏈接:
- 教程說(shuō)明:
.Net教程-ASP.NET2.0向其它網(wǎng)頁(yè)傳遞信息的方法(2)
。