一点小注意:为Html Server控件添加客户端和服务器端的Event Handler
Html服务器端控件本质上是一个服务器端的控件,然后Render成客户端的相应Html标签,它介于Web服务器端控件和客户端Html控件之间,可以相应客户端和服务器端两种事件。这两种事件处理器都可以在Html服务器控件的标签里面内联(inline)添加,比如如下:
<INPUT type="button" onserverclick="Button1_Click" onclick="Click_handler()" value="Button" runat="server">
我们为System.Web.UI.HtmlControls.HtmlInputButton添加了客户端的onclick事件和服务器端的onserverclick两个事件处理器。最后Render出来的Html代码如下:
<input language="javascript" onclick="Click_handler() __doPostBack('_ctl0','')" name="_ctl0" type="button" value="Button" />
这样就会出现客户端的Javascript错误:"缺少;",原因就是HtmlInputButton的onserverclick是在客户端的onclick事件里面加入__doPostBack Javascript语句来产生PostBack,所以Click_handler()和__doPostBack('_ctl0','')之间需要一个";",所以,我们应该显示添加一个";",这样:
<INPUT type="button" onserverclick="Button1_Click" onclick="Click_handler();" value="Button" runat="server">
这样就变成了:
<input language="javascript" onclick="Click_handler();__doPostBack('_ctl0','')" name="_ctl0" type="button" value="Button" />
<INPUT type="button" onserverclick="Button1_Click" onclick="Click_handler()" value="Button" runat="server">
我们为System.Web.UI.HtmlControls.HtmlInputButton添加了客户端的onclick事件和服务器端的onserverclick两个事件处理器。最后Render出来的Html代码如下:
<input language="javascript" onclick="Click_handler() __doPostBack('_ctl0','')" name="_ctl0" type="button" value="Button" />
这样就会出现客户端的Javascript错误:"缺少;",原因就是HtmlInputButton的onserverclick是在客户端的onclick事件里面加入__doPostBack Javascript语句来产生PostBack,所以Click_handler()和__doPostBack('_ctl0','')之间需要一个";",所以,我们应该显示添加一个";",这样:
<INPUT type="button" onserverclick="Button1_Click" onclick="Click_handler();" value="Button" runat="server">
这样就变成了:
<input language="javascript" onclick="Click_handler();__doPostBack('_ctl0','')" name="_ctl0" type="button" value="Button" />