ASP.NET 2.0的跨頁回調

來源:互聯網
上載者:User

在ASP.NET2.0中,跨頁提交允許把一個頁面的回調回調提交到一個不同的網 頁中。本文中我們將探索一些不同的跨頁提交的方法。另,翻譯的特別困難,請 各位朋友批評指正。

ASP.NET1.1隻提供了提交到本頁的方式。在很多情況下,我們的解決方案中 會有跨頁的提交的需求,傳統的方法都是通過Response,Redirect或者 Server.Transfer的方式轉移到另外的一頁然後類比出一個跨頁回調的效果。

ASP.NET2.0提供了這種能實現從一個表單頁提交到另一個表單頁的跨頁提交 的功能。

如何?跨頁提交

要實現跨頁提交,在源表單頁裡,需要設定控制項的PostBackURL這個屬性來實 現IButtonControl(比如Button,ImageButton,LinkButton)介面來定位到目標 表單頁。當使用者單擊這個button控制項的時候,表單頁就會跨頁提交到目標表單頁 。不需要在源表單頁中進行任何設定或編寫任何的代碼。

通過FindControl方法在目標頁中檢索源表單頁中的資訊

目標表單頁獲得“跨”過來的那一頁請求的資訊是通過一個不為空白的 PreviousPage方法。這個屬性代表著源表單頁並且為源表單頁和其控制項建立引用 。

源表單頁上的控制項在目標頁上可以通過PreviousPage的FindControl方法來獲 得。

protected void Page_Load(object sender, EventArgs e)
   {
   ...
   TextBox txtStartDate = (TextBox) PreviousPage.FindControl ("txtStartDate ");
   ...
   }

這時目標表單頁是不知道源表單頁的任何資訊的。PreviousPage這個屬性的 類型是Page,所以檢索控制項就可以使用FindControl的方法,但開發人員需要對 源表單頁的結構有一個大體的瞭解。而使用FindControl方法必然會有一些限制 ,比如FindControl方法只能依靠開發人員提供的控制項的id屬性來定位到一個控 件。如果源表單頁的控制項id變了的話那麼這個方法就有可能失效。FindControl 方法只能處理那些在當前容器裡的控制項,如果開發人員需要檢索在其它控制項中( 容器)的控制項的話,那麼首先需要獲得其父控制項的一個引用。

通過@PreviousPageType指令在目標頁中檢索源表單頁的資訊

另外一個方法就是在源表單頁已經確定的情況下,使用@PreviousPageType指 令。這個指令可以在目標表單頁中以強型別的方式訪問源表單頁。這個指令指定 源表單頁使用VirtualPath屬性還是TypeName屬性。PreviousPage屬性返回一個 強型別的結果來對源表單頁進行引用。其允許訪問源目標頁的公用屬性。

SourcePage.aspx:

<form runat="server" >
...
<asp:textbox runat="server" id="txtFirstName"/>
<asp:textbox runat="server" id="txtLastName"/>
<asp:button runat="server" id="btnViewReport" Text="View Report" PostbackURL="~/targetpage.aspx" />
...
public string FirstName
{
   get { return txtFirstName.Text; }
}
...
TargetPage.aspx
<%@ PreviousPageType VirtualPath="sourcepage.aspx" %>
string strFirstName;
strFirstName = PreviousPage.FirstName //Strongly Typed PreviousPage allows direct access to the public properties of the source page.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.