日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OnClick,OnClientClick和OnServerClick的区别

發布時間:2024/6/14 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OnClick,OnClientClick和OnServerClick的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
OnClientClick是客戶端事件處理方法,一般采用JavaScript來進行處理,也就是直接在IE端運行,一點擊就運行

OnClick是服務器端事件處理方法,在服務器端也就是IIS中運行,點擊后,先執行postback,再運行

OnClientClick常用來做一些客戶端的檢測。當然也可以放在服務器端檢測,但是需要與服務器進行交互,消耗資源,而且用戶體驗也不好。

當一個控件上同時有OnClick和OnClientClick時,OnClientClick先于OnClick執行

正確的寫法應該是:

<asp:Button?ID="btnSave"runat="server"Text="Save"OnClick="btnSave_Click"OnClientClick="return?saveFunc();"/>

saveFunc對數據進行驗證,當驗證通過返回true時,執行服務器端方法進行保存,驗證不通過返回false,服務器端的保存方法就不會執行。

錯誤的寫法:

<!--無論驗證是否通過,都會執行服務器端方法,不能達到驗證的目的-->
<asp:Button?ID="btnSave"runat="server"Text="Save"OnClick="btnSave_Click"OnClientClick="saveFunc();"/>

<!--無論驗證結果如何都返回false,服務器端方法永遠不會執行-->
<asp:Button?ID="btnSave"runat="server"Text="Save"OnClick="btnSave_Click"OnClientClick="saveFunc();?return?false;"/>

?

?

?

下面以 HTML的按鈕(system.web.ui.htmlcontrols) 和 ASP.NET服務端按鈕 (system.web.ui.webcontrols) 為例:
1. HTML控件,如IMG的輸入按鈕等 的 onclick ( 客戶端) 和 onserverclick(服務端) 事件,

注意 runat="server"

<input type="button" id="btn" name="btn" value="button" runat="server" onserverclick="ServerSideEvent" οnclick="SideScript" />

此處的onclick先于onserverclick執行。
2.WEB控件,如<asp:button 按鈕等 的 onclientclick (客戶端) 和 onclick (服務端) 事件。。。

<asp:Button ID="btn" text="button" runat="server"??OnClick="SideScript" OnClientClick="ClientSideScript" />

此處的onclientclick先于onclick執行。
onclientclick??事件來自2.0, 它用來取代下列代碼。。。

btn.Attributes.Add("onclick","SideScript");

總之,客戶端點擊事件先于服務器端點擊事件執行。也就是說,先執行客戶端的Javascript,然后

到服務器端執行服務器的相關代碼。

?

<%@ Page Language="C#"AutoEventWireup="true"CodeBehind="WebForm2.aspx.cs"Inherits="CaiPiao.WebForm2"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
????<title></title>
????<scripttype="text/javascript">
????????function?fnIsSearch() {
????????????return?true;
????????}
????</script>
</head>

<body>
????<formid="form1"?runat="server">
????<div>
????<inputid="btnImport"type="submit"runat="server"value="導出"?onserverclick="btnImport_Click"/>
????</div>
????</form>
</body>
</html>


后臺代碼
[code=C#]
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace CaiPiao
{
????public partial class WebForm2 : System.Web.UI.Page
????{
????????protected void Page_Load(object sender, EventArgs e)
????????{
????????????this.btnImport.Attributes.Add("onclick", "return fnIsSearch();");
????????}
????????public void btnImport_Click(object sender, EventArgs e)
????????{
????????????Response.Write("測試");
????????}
????}
}

?

轉自:http://blog.csdn.net/coolpig86/article/details/5439560

轉載于:https://www.cnblogs.com/ITGirl00/p/3325342.html

總結

以上是生活随笔為你收集整理的OnClick,OnClientClick和OnServerClick的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。