Web服务器控件
客户端事件方法,一般采用JavaScript来进行处理,也就是直接在客户浏览器上运行,并呈现输出结果。
服务器端事件,一般由对控件的操作引发postback,服务器端执行事件处理程序,输出结果HTML回客户端浏览器呈现。
下面以一个例子,来分析两种事件处理的异同:
<%@ Page Language="C#" %>
<script runat="server">
protected void Button1_Click(Object sender, EventArgs e)
{
Label1.Text = "Server click handler called.";
}
</script>
<html>
<body>
<form id="form1" runat="server">
<asp:Button ID="Button1" Runat="server"
OnClick="Button1_Click"
OnClientClick="return confirm('Ready to submit.')"
Text="Test Client Click" />
<br />
<asp:Label ID="Label1" Runat="server" text="" />
</form>
</body>
</html>
运行程序,点击按钮弹出对话框;选择确定,Label1上将显示“Server click handler called.”;选择取消,Label1上的文字将不变。
可见,点击按钮时首先执行的是客户端事件;如果客户端事件返回的是false,不会发生postback,服务器端事件也不会执行;只有客户端事件返回true,才会触发控件的postback,引起服务器端事件处理程序的执行。
查看client_server.aspx,运行代码,体会客户端事件、服务器端事件处理时机的不同。