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

简介:
让服务器控件的事件同时执行客户端脚本和服务器端代码
    问题:
        有时候我们需要一个服务器控件同时执行客户端脚本(如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,如需转载请自行联系原作者。

目录
相关文章
|
22天前
|
弹性计算 Shell Perl
ecs服务器shell常用脚本练习(二)
【4月更文挑战第1天】shell代码训练(二)
104 1
|
1月前
|
Ubuntu 网络协议 Java
【Android平板编程】远程Ubuntu服务器code-server编程写代码
【Android平板编程】远程Ubuntu服务器code-server编程写代码
|
16天前
|
网络协议 Python
pythonTCP客户端编程连接服务器
【4月更文挑战第6天】本教程介绍了TCP客户端如何连接服务器,包括指定服务器IP和端口、发送连接请求、处理异常、进行数据传输及关闭连接。在Python中,使用`socket`模块创建Socket对象,然后通过`connect()`方法尝试连接服务器 `(server_ip, server_port)`。成功连接后,利用`send()`和`recv()`进行数据交互,记得在通信完成后调用`close()`关闭连接,确保资源释放和程序稳定性。
|
11天前
|
存储 弹性计算 Shell
ecs服务器shell常用脚本练习(十)
【4月更文挑战第11天】shell代码训练(十)
140 0
|
11天前
|
弹性计算 Shell Go
ecs服务器shell常用脚本练习(九)
【4月更文挑战第10天】shell代码训练(八)
133 0
|
15天前
|
弹性计算 Shell Linux
ecs服务器shell常用脚本练习(六)
【4月更文挑战第4天】shell代码训练(六)
108 0
|
20天前
|
弹性计算 Shell 应用服务中间件
ecs服务器shell常用脚本练习(四)
【4月更文挑战第4天】shell代码训练(四)
96 0
|
1月前
|
Linux Shell 调度
PBS任务脚本模板及常用服务器PBS命令介绍
【2月更文挑战第21天】本文介绍在Linux服务器中,通过PBS(Portable Batch System)作业管理系统脚本的方式,提交任务到服务器队列,并执行任务的方法~
114 4
PBS任务脚本模板及常用服务器PBS命令介绍
|
29天前
|
Ubuntu JavaScript 关系型数据库
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客
在阿里云Ubuntu 20.04服务器上部署Ghost博客的步骤包括创建新用户、安装Nginx、MySQL和Node.js 18.x。首先,通过`adduser`命令创建非root用户,然后安装Nginx和MySQL。接着,设置Node.js环境,下载Nodesource GPG密钥并安装Node.js 18.x。之后,使用`npm`安装Ghost-CLI,创建Ghost安装目录并进行安装。配置过程中需提供博客URL、数据库连接信息等。最后,测试访问前台首页和后台管理页面。确保DNS设置正确,并根据提示完成Ghost博客的配置。
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客
|
1月前
|
存储 弹性计算 数据可视化
要将ECS中的文件直接传输到阿里云网盘与相册(
【2月更文挑战第31天】要将ECS中的文件直接传输到阿里云网盘与相册(
415 4