2. ASP.NET服务端控件中Click事件,要分为两点来看:
1)OnClick:运行服务端代码,并且不需要加()。
2)OnClientClick:如果允许服务端控件运行客户端Click脚步事件,那么需要采用该事件进行处理。但该事件处理完毕,执行return true时,那么接着会执行OnClick服务
端代码。如果执行return false 时,那么将放弃OnClick服务端代码的执行。
注释:OnClientClick是在.net2.0开始支持的。
3. HTML控件运行在服务端(runat="server")时,也有下面两点:
1)OnClick:单纯执行客服端Click脚本代码。
2)OnServerClick:运行服务端代码,并且不需要加()。
但是在OnClick事件中,如果有return false或return true,都将不执行OnServerClick事件。
下面是示例,可以帮助理解:
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
<script src="Scripts/jquery-1.4.2-vsdoc.js" type="text/javascript"></script>
<script src="Scripts/jquery-1.4.2.js" type="text/javascript"></script>
</head>
<body>
<script type="text/javascript" language="javascript">
function clientCall() {
alert("ClientCall");
}
//可以用来代替OnClientClick
// $(function() {
// $("#btnServer").click(function() {
// alert("ClientCall");
// return true;
// })
// })
</script>
<form id="form1" runat="server">
<div>
<input id="btnClient" type="button" value="客户端调用" οnclick="clientCall()" />
<asp:Button ID="btnServer" runat="server" OnClick="btnServer_Click" OnClientClick="clientCall();return true;" Text="服务端调用" />
<%--<asp:Button ID="btnServer" runat="server" OnClick="btnServer_Click" Text="服务端调用" />--%>
<input id="btnClientAtServer" type="button" value="运行在服务端HTML控件" runat="server" οnclick="clientCall();"
onserverclick="btnClientAtServerClick" />
</div>
</form>
</body>
</html>