2011-03-27 89 views

回答

17

我會反對它的建議,因爲它是ASP.NET的內部東西,並沒有打算直接使用。

相反,我在做什麼,當我需要「手動」觸發回發將隱藏「服務器端」按鈕,用適當的OnClick:

<asp:Button id="btnDummy" runat="server" OnClick="Foo" style="display: none;" /> 

那麼JS是:

document.getElementById("<%=btnDummy.ClientID%>").click(); 

這種方式我不在乎如何回帖發生,我只是觸發事件的自然流動。

1

他們可能不會改變它,但爲什麼直接調用它?
我認爲這是一個更好的策略來觸發事件(例如按鈕點擊)並讓控件觸發回發。

我確實需要直接觸發回傳,建議使用描述的Page.ClientScript函數。

1

我認爲它直接使用非常好,並且使用它沒有失敗,畢竟它只是一個JavaScript函數。

+0

是的,它只是「一個JavaScript函數」,但問題是沒有*保證*它將出現在下一個版本中。 – 2011-03-27 12:24:04

0

我們在所有地方使用它,我無法想象它會被剝離出ASP.NET。我認爲假的/隱藏的按鈕方法就好像不是更糟。如果您使用僞按鈕方法,那麼您無法選擇傳入__EVENTARGUMENT。我喜歡使用__EVENTARGUMENT將數據傳遞到服務器上比創建隱藏字段更好,因爲黑客會比單純將隱藏字段發回到我的頁面更難。我也不喜歡在頁面上創建字段和控件的想法,如果它們甚至不被顯示。我相信,假按鈕方法對於新手編碼人員來說可能更容易理解。這就是說,我正在尋找一種更優雅的方式來處理這個問題,但仍然發現我自己打電話

__doPostBack('%=UpdatePanel.ClientID%>','MyData') 

在某些情況下。