我需要在重定向(Response.Redirect)到另一个页面之前检查回发上的某个条件。
注意......我无法使用JavaScript来检测是否确认(这也是一项要求):s
伪:
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 :(得分:2)
如果您使用的是WebForms,则可以使用ViewState。
实现封装ViewState [“ShowConfirm”]的ShowConfirm属性。
在第一个回发中你将设置ShowConfirm'true',这将在渲染过程中激活该模态(如果ShowConfirm为true,那么设置为可见'true'某些控件)。
在下一个回发中,你将ShowConfirm设置为'false',因为它是'true',最后你将完成整个重定向!
答案 1 :(得分:0)
您可以使用javascript中的ajax调用来设置所需的值。
答案 2 :(得分:0)
由于回发将在执行到达你的按钮点击事件之前发生,我们需要一个解决方法,如果你不需要JS作为你的要求,那么看看
Implementing Client Callbacks Programmatically without Postbacks in ASP.NET
这就像XMLHttp Ajax调用IMHO的包装器。
答案 3 :(得分:0)
如果没有javascipt,您无法轻松创建模型表单。
我要做的一个建议是在你的页面中放置面板。
第一小组是可见的。
提交一个;面板一个隐藏,面板二可见,要求确认。
在面板2上是确认按钮,单击此按钮可以执行重定向。