簡體   English   中英

為什么這個按鈕不會導致三重回發?

[英]Why this button doesn't cause triple postback?

我們已經開發了一個帶有asp.net的頁面並且我們在頁面按鈕上發現了意外調試,其中包含onclik屬性的下一個代碼

onclick="__doPostBack('ctl00$FormPlace$m_userTaskMarkAsUnreadButton',''); __doPostBack('ctl00$FormPlace$m_userTaskMarkAsUnreadButton','');WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$FormPlace$m_userTaskMarkAsUnreadButton", "", true, "", "", false, false))"

似乎按鈕執行了三次回發,但是當我們點擊它時只會導致回發。 使用此代碼似乎de按鈕將導致三個回發!

我們已經嘗試使用Internet Explorer和Firefox,並且按鈕只會導致回發。 瀏覽器是否避免按鈕執行三次回發? 或Asp.net服務器誰避免三回發? 如果onclick屬性有三個調用來執行回發,我們不明白為什么按鈕行為正常。

謝謝

如果調用的第一個JavaScript函數導致頁面POST數據(不使用XMLHttpRequest),則會加載新頁面並停止執行JavaScript。

第一個__doPostback將立即發布頁面。 其余兩個語句永遠不會被執行。

__doPostBack使用給定參數填充兩個隱藏字段,然后提交給服務器。 后來在javascript中出現的所有內容都無關緊要,因為頁面將被銷毀並重建。

我知道我在這里重新發明輪子......但是__doPostBack實際上是... 回發所以當第一次__doPostBack被執行時,你所在的頁面已經消失了。

順便說一句,這樣做聽起來很狡猾..為什么不調用一個方法並在后端做3次?

另外..這取決於您是否使用UpdatePanels ..

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM