2011-03-22 71 views
0

我有三頁,..說Page1,Page2,Page3。挑選網址之前的頁面

用戶點擊第一頁的鏈接和重定向到第二頁填寫表單和SUMIT其重定向到第3頁(Thankyou.aspx)

我要放在第3頁一個OK按鈕應該重定向到第1頁。

我不能硬編碼bcoz它應該是動態的

注:第1頁可以是任何其他頁面,第2頁可以是任何其他形式,但在第3頁我要跟蹤從那裏過程中的第1頁已經完成了。

我知道是這樣的:

HttpContext.Current.Request.UrlReferrer 

但它給你的前一頁,但不是第一頁。

它可以實現。

在此先感謝

+0

你不想使用WizardControl? – Robert 2011-03-22 09:33:51

+0

我想不使用嚮導的原因是因爲使用哪些頁面的動態特性。雖然我同意,但是一個好的設計可能會使用一個嚮導控件,它具有UserControls形狀的動態加載形式。 – 2011-03-22 09:40:42

回答

1

如果你願意,你也可以用javascript來做到這一點。您可以直接在您的OK按鈕像這樣把它掛:

btnOk.Attributes.Add("onClick", "javascript:history.go(-2); return false;"); 

,或者你就可以在網頁上使用ClientScriptManager(從MSDN)對其進行註冊:

// Define the name and type of the client scripts on the page. 
    String csname = "GoBackScript"; 
    Type cstype = this.GetType();   

    // Get a ClientScriptManager reference from the Page class. 
    ClientScriptManager cs = Page.ClientScript; 

    // Check to see if the startup script is already registered. 
    if (!cs.IsStartupScriptRegistered(cstype, csname)) 
    { 
     String scriptText= "<script type=\"text/javascript\">" + 
       "window.history.go(-2);</" + "script>";  
     cs.RegisterStartupScript(cstype , csname, scriptText); 
    } 
+1

中處理+1不是一個錯誤的答案。我建議你稍微修改一下,只在OK按鈕的點擊事件中調用history.go方法。此外,請注意,如果使用ClientScriptManager.RegisterStartupScript方法,則不需要包含腳本標記:http://msdn.microsoft.com/en-us/library/z9h4dk8y.aspx – 2011-03-22 09:45:20

+0

@Daniel Dyson:已編輯,謝謝你的建議。 – 2011-03-22 10:31:43

+0

感謝它的魅力 – Jam 2011-03-22 14:53:37

2

最簡單的方法是將第1頁的URL存儲在用戶的會話高速緩存

Session["page1"] = HttpContext.Current.Request.UrlReferrer 

然後,當你到了第3頁,你可以訪問它。確保在使用它之後,將其從會話緩存中刪除,以確保您永遠不會得到任何舊的URL。

+0

你是對的,但如果你看到我的帖子,說Page1可以是任何其他的PageX,所以只有我在Page3中做了一些編碼,這是所有人的幻想頁面。所以,如何在第3頁 – Jam 2011-03-22 09:52:25