2010-04-19 41 views
0

我有一個頁面,點擊按鈕那裏它將打開一個包含一些文本框的新頁面,用戶填寫所有文本框並單擊按鈕,現在第一頁再次打開,問題是:我怎樣才能獲得同時使用服務器端和客戶端的當前頁面上的文本框如何訪問客戶端上一頁的值?

有一個限制使用的: - 如果你正在使用的查詢字符串

+0

這裏有一個例子:http://www.codeproject.com/KB/aspnet/QueryString.aspx和這裏:http://www.java2s.com/Code/ASP/Request/SendandgetquerystringC。htm – 2010-04-19 15:47:52

+0

我們不能使用QueryStrings。 – 2010-04-19 15:52:27

+0

@Gaurav:這是唯一的方法:abswrite(0,0,0,0,「我的文字在這裏」);字符串mystring = absread(0,0,0,0); – Behrooz 2010-04-19 16:08:54

回答

0

服務器端方法:

另一種方法是使用Server.Transfer方法。

在當前頁面:

protected void Transfer_Click(object sender, EventArgs e) 
{ 
    if (Page.IsValid) 
    { 
    Server.Transfer("destination.aspx"); 
    } 
} 

在目標頁面:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (PreviousPage != null) 
    { 
    TextBox textBox = PreviousPage.FindControl("Parameter") 
         as TextBox; 

    if (textBox != null) 
    { 
     string parameter = textBox.Text; 
     Parameter.Text = parameter; 
    } 

    } 
} 

Server.Transfer配有缺點也。最嚴重的是瀏覽器中的URL不會改變。瀏覽器仍然認爲它已經發布並接收了第一個Web表單的內容,所以歷史和書籤都受到影響。

客戶端方法:

在現實世界中,我不建議使用此解決方案,這只是一種變通方法。

用兩句話說:在客戶端使用window.name屬性。該屬性在頁面重新加載時可用,它是一種會話。

欲瞭解更多信息,請參閱:

希望,這會有所幫助。

+0

@亞特拉什麼客戶端 – 2010-04-20 12:18:33

0

- 跨分頁 - 餅乾 - 會話 提交頁面上按鈕的PostBackUrl屬性,可以使用以下命令從操作頁面訪問「上一頁」的控件:

Dim txtBox as TextBox 
txtBox = CType(Page.PreviousPage.FindControl("MyTextBox"), TextBox) 

然後,您將以編程方式訪問該控件的所有屬性和數據。

+0

有限制使用跨分頁 – 2010-04-19 15:47:37

+0

他不能使用任何'跨分頁 - 餅乾 - 會話 - 查詢字符串' – 2010-04-19 16:42:05

0

如果您不能使用SessionQuerystringCookies和跨頁張貼,請使用cache

0

如果是簡單/原始數據,那麼你可以去ViewState。或者Cache是一個更好的選擇。 還有一個選擇是有一個頁面級公共變量,設置所需的值,並重定向到進一步處理頁面(這不是遵循一個好方法)