我想在按钮事件处理程序中运行代码,但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..)}有没有办法先运行处理程序,或者有办法检查点击了哪个按钮,以便我可以向重定向添加条件?谢谢。
1 回答
ABOUTYOU
TA贡献1812条经验 获得超5个赞
这种行为实际上是在 WebForms 中设计的。为了保持无状态,只要您希望触发服务器端事件,就会发生完整的回发。
所以简短的回答是否定的,你不能强迫你的事件发生在Page_Load
它之前。
但是,您可以稍微重组您的设计以获得您想要的行为。目前,看起来好像您正在依赖发生的 PostBack 来执行您的保存逻辑。Page_Load
它可以在适合用户期望保存方式的事件中处理,而不是在您的事件中处理逻辑。
如果通过按下按钮触发保存,则将处理保存和重定向到Save_Click
事件的逻辑移动将允许与 PostBack 相关的其他事件也执行它们自己的逻辑。
- 1 回答
- 0 关注
- 179 浏览
添加回答
举报
0/150
提交
取消