2011-01-24 33 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上是确认按钮,单击此按钮即可执行重定向。