我想在按鈕事件處理程序中運行代碼,但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條經(jīng)驗 獲得超5個贊
這種行為實際上是在 WebForms 中設計的。為了保持無狀態(tài),只要您希望觸發(fā)服務器端事件,就會發(fā)生完整的回發(fā)。
所以簡短的回答是否定的,你不能強迫你的事件發(fā)生在Page_Load
它之前。
但是,您可以稍微重組您的設計以獲得您想要的行為。目前,看起來好像您正在依賴發(fā)生的 PostBack 來執(zhí)行您的保存邏輯。Page_Load
它可以在適合用戶期望保存方式的事件中處理,而不是在您的事件中處理邏輯。
如果通過按下按鈕觸發(fā)保存,則將處理保存和重定向到Save_Click
事件的邏輯移動將允許與 PostBack 相關的其他事件也執(zhí)行它們自己的邏輯。
- 1 回答
- 0 關注
- 195 瀏覽
添加回答
舉報
0/150
提交
取消