.net中为什么有的按钮用onserverclick而有的按钮用onclick呢?

来源:百度知道 编辑:UC知道 时间:2024/06/02 04:33:37
有的按钮用onclick就可以在服务器响应,而有的按钮要用onserverclick才可以在服务器响应。
<asp:button id=button1 runat=server test=button1 onclick=button1_onclick/>

<input type=button id=button2 runat=server value=button2 onserverclick=button2_onclick>

下面以 HTML的按钮( system.web.ui.htmlcontrols ) 和 ASP.NET服务端按钮 ( system.web.ui.webcontrols ) 为例:
1. HTML控件,如IMG的输入按钮等 的 onclick ( 客户端 )和 onserverclick( 服务端 )事件,注意 runat="server"。。。

此处的onclick先于onserverclick执行。

2.WEB控件,如<asp:button 按钮等 的 onclientclick( 客户端 ) 和 onclick ( 服务端 )事件。。。

此处的onclientclick先于onclick执行。

onclientclick 事件来自2.0, 它用来取代下列代码。。。

总之,客户端点击事件先于服务器端点击事件执行。也就是说,先执行客户端的Javascript,然后到服务器端执行服务器的相关代码。

对于服务器按钮控件(即<asp:Button>类型的按钮):
服务器响应事件:OnClick
客户端响应属性:OnClientClick

对于html按钮控件(即<input type="button" runat="server">)
服务器响应事件:OnServerClick
客户端响应事件:onclick

知道了吧,两个控件不一样的~~

asp:Button类型的是onclick
<input type="button" runat="server" />类型的是onserverclick
一个是.net的控件 ~一个是html控件转换成服务器端控件
效果完全一样,应为input 本身具有onclick的客户端事件,微软只能使用onserverclick作为服务器端响应的名称

一个是服务器的一个是客户的

服务器段响应
客户段响应