簡體   English   中英

ASP.NET-如何跟蹤以前回發的事件?

[英]ASP.NET - How to track event from previous postback?

我需要先檢查回傳的特定條件,然后再重定向(Response.Redirect)到另一個頁面。

注意...我無法使用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事件都會進行檢查。 因此,當用戶在模式上單擊“是”時,頁面如何知道要放回哪個事件?

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

實現封裝了ViewState [“ ShowConfirm”]的ShowConfirm屬性。

在第一個回發中,您將ShowConfirm設置為“ true”,這將在渲染期間激活該模式(如果ShowConfirm為true,則在某些控件上將其設置為可見的“ true”)。

在下一個回發中,您將ShowConfirm設置為false,因為它是true,最后將進行整個重定向!

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

由於回發將在執行尚未執行到您的按鈕單擊事件之前發生,因此我們在這里需要一種解決方法,如果您不需要JS,那么請看一下

在ASP.NET中以編程方式實現客戶端回調而無需回發

這很像XMLHttp Ajax調用IMHO的包裝。

沒有javascipt,就無法輕松創建模型表單。

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

第一面板可見。

提交一個; 第一面板隱藏,第二面板可見,要求確認。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM