让服务器端控件同时执行客户端脚本和服务器端代码

简介:
让服务器控件的事件同时执行客户端脚本和服务器端代码
    问题:
        有时候我们需要一个服务器控件同时执行客户端脚本(如javascript)和服务器端代码。比如在进行表单验证的时候,希望先在客户端进行验证,只有通过验证才执行后台代码。这样可以避免不必要的postback,提供更好的用户体验。
    解决方案:
        在不同的地方分别注册客户端和服务器端事件处理函数。示例如下:
    Web页面代码(仅HTML部分):
     < HTML >
        
< HEAD >
            
< title > DoubleSidesHandler </ title >
            
< script  language ="javascript" >
                
function  submitClientHandler()
                {
                    
var  len  =  document.form1.txtName.value.length;
                    
if (len  <   3 )
                    {
                        window.alert(
" required at least 3 letters! " );
                        
return   false ;
                    }
                    window.alert(document.form1.txtName.value);
                    
return   true ;
                }
                
                
function  initHandler()
                {
                    
var  elem  =  document.form1.btnSubmit;
                    
if (elem)
                    {
                        elem.onclick 
=  submitClientHandler;
                    }
                }
            
</ script >
        
</ HEAD >
        
< body  onload ="initHandler()" >
            
< form  id ="form1"  method ="post"  runat ="server" >
                Enter your name:
                
< asp:TextBox  ID ="txtName"  Width ="200px"  Runat ="server" ></ asp:TextBox >
                
< br >
                
< asp:Button  ID ="btnSubmit"  Text ="Submit"  Runat ="server"  OnClick ="SubmitServerHandler" ></ asp:Button >
            
</ form >
        
</ body >
    
</ HTML >

     后台代码(仅事件处理函数):
     
     protected   void  SubmitServerHandler( object  sender, System.EventArgs e)
     {
        Response.Write(
" hello! "   +  txtName.Text  +   " <br> " );
     }

     分析:
     这里客户端和服务器端的事件处理函数分别是submitClientHandler()和 SubmitServerHandler()。submitClientHandler() 在页面加载完成时(onload事件中)注册,这时才能获得对服务器控件的引用。 SubmitServerHandler()在Button控件的OnClick属性中注册,这里注意该方法须声明为protected 以上 级别,这样才能在页面中访问。完成这两步注册后,页面会先后执行客户端和服务器端时间处理函数。

     那么,怎么才能控制对服务器端代码的调用?看
submitClientHandler()函数,如果返回false,那么就不执行 SubmitServerHandler(),如果返回true,就会继续调用 SubmitServerHandler()。

本文转自一个程序员的自省博客园博客,原文链接:http://www.cnblogs.com/anderslly/archive/2006/09/30/doublesidesevent.html,如需转载请自行联系原作者。

目录
相关文章
|
1天前
|
SQL 存储 数据库
两个Python脚本轻松解决ETL工作:统计多个服务器下所有数据表信息
两个Python脚本轻松解决ETL工作:统计多个服务器下所有数据表信息
|
1天前
|
SQL 存储 数据库
两个Python脚本轻松解决ETL工作:统计多个服务器下所有数据表信息(1)
两个Python脚本轻松解决ETL工作:统计多个服务器下所有数据表信息(1)
|
2天前
|
网络协议 JavaScript 前端开发
WebSocket:实现客户端与服务器实时通信的技术
WebSocket:实现客户端与服务器实时通信的技术
|
3天前
|
网络协议
Socket实现服务器和客户端(手把手教会)
Socket实现服务器和客户端(手把手教会)
|
3天前
|
Windows
LabVIEW中ActiveX控件、ActiveX服务器和类型库注册
LabVIEW中ActiveX控件、ActiveX服务器和类型库注册
12 4
|
3天前
|
网络协议 Dubbo Java
【网络编程】理解客户端和服务器并使用Java提供的api实现回显服务器
【网络编程】理解客户端和服务器并使用Java提供的api实现回显服务器
11 0
|
3天前
|
Ubuntu Android开发 数据安全/隐私保护
【Android平板编程】远程Ubuntu服务器Code-Server编程写代码
【Android平板编程】远程Ubuntu服务器Code-Server编程写代码
|
3天前
|
弹性计算 运维 监控
解密阿里云弹性计算:探索云服务器ECS的核心功能
阿里云ECS是核心计算服务,提供弹性云服务器资源,支持实例按需配置、集群管理和监控,集成安全防护,确保服务稳定、安全,助力高效业务运营。
81 0
|
1天前
|
弹性计算 运维 安全
阿里云ecs使用体验
整了台服务器部署项目上线
|
3天前
|
弹性计算
阿里云ECS的使用心得
本文主要讲述了我是如何了解到ECS,使用ECS的一些经验,以及自己的感悟心得

热门文章

最新文章