2009-11-28 303 views
0

我的問題是我想傳遞一個標籤和隱藏控件的值,它們駐留在page1.aspx中的datalist中,我想在page2.aspx中訪問這些值。如何在點擊提交按鈕時將值傳遞到另一個頁面。有沒有更好的選擇,我們有沒有使用會議,server.transfer,request.querystrings等。幫幫我。我正在使用母版頁。我們可以使用previouspage嗎?如果是這樣的話。建議我一個更好的解決方案。提前致謝。使用母版頁將值從一個頁面傳遞到另一個

回答

0

如果您使用隱藏的輸入元素,則其值將通過Request.Form(例如,

HTML在Page1.aspx的

<input type="hidden" name="country" value="Norway" /> 

C#在Page2.aspx

var country = Request.Form["country"]; // "Norway" 
+0

....如果數據不敏感.. !! – Manish 2009-11-28 11:33:10

+0

在問題中聲明數據包含在隱藏的控件/標籤中 – 2009-11-28 16:48:37

0

你肯定消除了大量的頁面之間保存數據的常用方法。除queryString參數外,還有隱藏的表單值(Adam的示例)和Cookie,這些值也可以從Request對象訪問。如果數據相對較小且不是特別敏感,則可以將其寫入用戶計算機上的cookie。

或者,您需要某種持久性機制來保存數據。您可以將信息寫入Web服務器上的文件。最明顯的缺點是您需要更復雜的邏輯來確保每個用戶的數據保持分離,您基本上需要創建自己的會話管理邏輯。

想到的另一個選擇是將信息保存到數據庫。除非您需要存儲和管理大量複雜的數據,否則在大多數情況下這不是一個可行的選擇。它也帶有與文件存儲機制大部分相同的缺陷。

1

是的,您可以通過跨頁面帖子使用PreviousPage

首先,將第一頁上的控件的PostBackUrl屬性指定爲指向第二頁。

接下來,設置PreviousPage指令在第二頁上:

<%@ PreviousPageType VirtualPath="~/first.aspx" %> 

當第二頁接收回傳,讓你從第一頁所需的數據:

Page previous = Page.PreviousPage; 
if (previous != null) 
{ 
    Label label = (Label)previous.FindControl("myLabel"); 
    if (label != null) 
    { 
     string text = label.Text; 
    } 
} 
0

除非性能一個真正的問題,只要與會話。

相關問題