2010-04-23 157 views
4

Typically.NET通過使按鈕類型=「提交」處理上的一個按鈕後回到事件:.Net將「__doPostBack」添加到javaScript onClick事件...爲什麼?

<input type="submit" Text="Delete" /> 

不過,我最近碰到了的情況下.NET被處理後回使輸入類型=「按鈕」,然後添加一個JavaScript onClick事件做了「__doPostBack()」 - 所以你最終這樣的:

<input type="button" onClick="__doPostBack(...);" /> 

的問題,這是試圖確認消息增加點擊。所以在第二種情況下,我以這種方式結束:

<input type="button" onClick="return confirm('Are you sure?'); __doPostBack(...);" Text="Delete" /> 

當然,在上述情況下,回發將不會發生。

我想知道的是爲什麼.net選擇其中一個場景,有沒有辦法阻止第二?

由於

回答

0

這個問題的答案是:

.NET使用的onClick事件__doPostBack(...)在Ajax場景中工作時。

0

的__doPostBack使達網絡添加額外的功能,例如客戶端驗證檢查。如果它需要這樣做,它會這樣做。

關於您的實現,您可以使用按鈕的OnClientClick屬性來設置任何其他腳本。

+0

不幸的是,在這種情況下使用OnClientClick不起作用。如果我想爲按鈕添加一個「return confirm('')」,它就像我在原始問題中發佈的那樣結束,並且回發被忽略。 – bugfixr 2010-04-23 14:28:47

3

你需要有這樣的輸出:

<input type="button" onClick="if(!confirm('Are you sure?')){return false};__doPostBack(...);" Text="Delete" /> 

通過讓它返回如果確認是真的還是假的,你會不會執行回發。但是,如果你只是返回false,你應該沒問題。

相關問題