asp.net服務器控件button先執行js再執行后台的方法


  服務器控件增強了在后台處理的能力,但是在前台有時候也被受到了限制。

關於button這個服務器控件,我一直想減少它向服務器提交數據。那些檢測,還是在客戶端實現就好了。這就需要javascript,但是我發現僅僅有javascript還是不夠的。button服務器控件的單擊事件叫“onClick”,所以javascript就無法使用這個事件。因為重名了。我想實現的是單擊button的時候,先執行客戶端的javascript代碼,然后再執行后台事件。

如果使用的是html控件,就不存在這種問題了。但是,我就是想實現服務器控件的這一功能,有時候服務器控件也是很好用的。

方法:

先給aspx頁面增加一個服務器控件button

<asp:Button ID="button1" runat="server" Text="提交" onclick="button1_Click"/>

在頁面初始化的時候,給button這個服務器控件增加一個客戶端事件。也就是在Page_Load()這個方法里面加一句代碼:

 

protected void Page_Load(object sender, EventArgs e)
{          
       if (!Page.IsPostBack)
            {
                //給button1添加客戶端事件
                button1.Attributes.Add("OnClick", "return  jsFunction()");
                //jsFunction()是js函數
            }
}
jsFunction()是js函數,在aspx頁面上增加,譬如
<script language="javascript">
function jsFunction() {
        if (confirm("確定添加員工嗎?")) {
            return true;
        }
        return false;
    }
</script>

上面的return ture和false是很重要的,這決定了是否往下執行,往下執行就應該是將數據提交到后台處理數據。當返回true時,后台執行button1_Click這個方法(事件)。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM