[英]How can I run a event handler before Page.IsPostBack
我想在按钮事件处理程序中运行代码,但是if(Page.IsPostBack)
条件首先运行,并且包含重定向,因此事件永远不会运行。
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack)
{
(do some stuff with save button pressed...)
// then return the same page to prevent another post on refresh
Response.Redirect(Request.Url.AbsoluteUri);
}
}
在该页面上,还有另一个按钮调用处理程序:
protected void Export_Click(object sender, EventArgs e)
{
(do other stuff..)
}
有没有一种方法可以先运行处理程序,也可以检查单击了哪个按钮,以便可以向重定向添加条件? 谢谢。
此行为实际上是设计使然的WebForms。 为了使事情保持无状态,每当您希望触发服务器端事件时,就会发生完整的回发。
因此,简短的答案是“否”,您不能强迫您的事件在Page_Load
之前发生。
但是,您可以稍微调整设计以获得所需的性能。 目前,看来您是依靠PostBack来执行保存逻辑的。 除了处理您的Page_Load
事件中的逻辑外,还可以在适合您的用户期望保存方式的事件中处理它。
如果通过按下按钮触发保存,则将用于处理保存的逻辑转移到Save_Click
事件并重定向到Save_Click
事件,这将使与PostBack相关的其他事件也执行它们自己的逻辑。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.