问题:
      有时候我们需要一个服务器控件同时执行客户端脚本(如javascript)和服务器端代码。比如在进行表单验证的时候,希望先在客户端进行验证,只有通过验证才执行后台代码。这样可以避免不必要的postback,提供更好的用户体验。
      解决方案:
      在不同的地方分别注册客户端和服务器端事件处理函数。示例如下:
      Web页面代码(仅HTML部分):

 1让服务器控件的事件同时执行客户端脚本和服务器端代码<HTML>
 2让服务器控件的事件同时执行客户端脚本和服务器端代码        <HEAD>
 3让服务器控件的事件同时执行客户端脚本和服务器端代码            <title>DoubleSidesHandler</title>
 4本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xiangyehpu/archive/2009/02/25/3934536.aspx

      后台代码(仅事件处理函数):

1让服务器控件的事件同时执行客户端脚本和服务器端代码protected void SubmitServerHandler(object sender, System.EventArgs e)
2让服务器控件的事件同时执行客户端脚本和服务器端代码     {
3让服务器控件的事件同时执行客户端脚本和服务器端代码        Response.Write("hello!" + txtName.Text + "<br>");
4让服务器控件的事件同时执行客户端脚本和服务器端代码     }

     分析:
     这里客户端和服务器端的事件处理函数分别是submitClientHandler()和SubmitServerHandler()。submitClientHandler()在页面加载完成时(onload事件中)注册,这时才能获得对服务器控件的引用。SubmitServerHandler()在Button控件的OnClick属性中注册,这里注意该方法须声明为protected以上级别,这样才能在页面中访问。完成这两步注册后,页面会先后执行客户端和服务器端时间处理函数。
     那么,怎么才能控制对服务器端代码的调用?看submitClientHandler()函数,如果返回false,那么就不执行SubmitServerHandler(),如果返回true,就会继续调用SubmitServerHandler()。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xiangyehpu/archive/2009/02/25/3934536.aspx

 

相关文章: