asp.net的Button默認行為是將頁面回送後執行服務器代碼。在頁面中還可以使用html的按鈕控件input type="button",但是這種HTML控件在cs文件中引用不到。
asp:Button在cs文件中可用,如何使它只執行客戶端JavaScript代碼而不回送執行服務器端代碼呢?
首先介紹asp:Button的兩個事件OnClientClick和OnClick,前者OnClientClick是執行客戶端JavaScript代碼,後者OnClick是服務器代碼,先執行postback,再在服務器運行。OnClientClick要先於OnClick,如果asp:Button裡沒有OnClick,點擊時會照樣回送。
當OnClientClick返回false時,OnClick就不會執行了。這樣在OnClientClick可以執行一個Ajax異步操作。
復制代碼 代碼如下:
<asp:Button ID="btnSave" runat="server" Text="Save" OnClientClick="AjaxDoSave(); return false;" />
這樣這個Button就變成了客戶端的input了,但在cs文件中還能引用到。