[英]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,那么請看一下
這很像XMLHttp Ajax調用IMHO的包裝。
沒有javascipt,就無法輕松創建模型表單。
我建議的一個建議是在頁面中放置面板。
第一面板可見。
提交一個; 第一面板隱藏,第二面板可見,要求確認。
在面板2上是一個確認按鈕,單擊此按鈕將執行重定向。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.