2011-01-24 45 views
0

我有一個要求,在重定向(Response.Redirect)到另一個頁面之前檢查回發中的某個條件。ASP.NET - 如何跟蹤以前回發的事件?

注意......我不能使用JavaScript來檢測是否確認(這也是一個要求):■

僞:

protected void lbtnRedirect_OnClick(object sender, EventArgs e) 
{ 
    if (showConfirm) 
    { 
     // Set flag for client side 
     this.ShowConfirm = true; 

     // Track this event for next postback. 
    } 
    else 
    { 
     Response.Redirect("somepage.aspx"); 
    } 
} 

如果showConfrim標誌== true,則客戶端將顯示一個模式對話框,詢問他們是否確定要重定向。如果用戶點擊「是」,那麼頁面回傳並且期望的效果是觸發lbtnRedirect_OnClick事件。我將如何跟蹤lbtnRedirect事件?

編輯: 我沒有問題跟蹤標誌來顯示模式(是的,JS必須用來顯示模式......你根本無法擺脫的東西:))。我應該更清楚。

這是當用戶點擊「是」繼續重定向。該頁面將重新回發,但需要知道要通過哪個事件。

即假設有3個onclick事件,1)lbtnRedirect1_Onclick 2)lbtnRedirect2_OnClick 3)lbtnRedirect3_OnClick ...每個都進行確認檢查。

每個onclick事件都會執行檢查。所以當用戶點擊模式上的「是」時,頁面如何知道要重新放置哪個事件?

+0

模態彈出窗口幾乎是一個JavaScript的東西。如果你有發現,他們有一個彈出式控制,你可以嘗試。 – 2011-01-24 14:05:58

+0

你可以使用JavaScript嗎?我會使用JavaScript來顯示模式對話框,並使對話框的'是'按鈕啓動重定向。 – 2011-01-24 14:33:20

回答

0

您可以使用javascript中的ajax調用來設置所需的值。

2

如果您在WebForms中,可以使用ViewState。

實現封裝ViewState [「ShowConfirm」]的ShowConfirm屬性。

在第一次回發中,您將設置ShowConfirm'true',並且這將在渲染過程中激活該模式(如果ShowConfirm爲true,則設置爲可見'true'某種控制)。

在下一個回傳中,您將設置ShowConfirm'false',因爲它是'true',最後您將執行整個重定向!

0

如果沒有javascipt,您無法輕鬆創建模型表單。

我會提出的一個建議是在頁面中放置面板。

面板一是可見的。

On submit one;面板一隱藏和麪板二是可見的要求確認。

在面板2上是確認按鈕,單擊此按鈕即可執行重定向。