做网站用户注册时,都要验证用户名是否已经被注册,现在最常见的做法是点了提交以后再在服务器端检查,这样给用户带来很大不便,如果用户名已经被注册就需要返回重输用户名和密码,这样带来了不必要的回发过程。以前在阿里巴巴注册时发现阿里巴巴在这点上做得很好,他们就是实时检查的。那么我们如何在 .Net 里面实现在这个功能呢。先看一下简单的思路,就是在客户端 Textbox 引发 onchange 事件时使用 XmlHttpRequest 在后台打开一个网页检查反馈结果。来看看简单实现

function Init() {
    var userName=document.getElementById("UserName");
     userName.onchange=function(){
        var oBao = new ActiveXObject("Microsoft.XMLHTTP");
         oBao.open("Get","check.aspx?username=" + userName.value,false);
         oBao.send();
        var strResult = oBao.responseText;
     }
}
window.onload=Init;

在网页上插入一个ID为UserName 的 TextBox 这样检查 ,然后在check.aspx 内检查用户名的使用情况,strResult 就可以知道,这样我们的功能算是完成了,但是这样做的缺点就是不能与验证控制一起验证,这时我们可以使用CustomValidator,因为CustomValidator是允许自己添加脚本进行验证的,我们把上面的脚本改一下,移到CustomValidator 的客户端里面。代码如下:

function ValidationFunctionName(source, arguments)
{
    var userName =document.getElementById("UserName");
    var oBao = new ActiveXObject("Microsoft.XMLHTTP");
     oBao.open("Get","Check.aspx?username=" + userName.value,false);  
     oBao.send();
    var strResult = oBao.responseText;

//如果返回 1 就代表可以使用,否则不能通过验证
    if (Number(strResult) == 1)
         arguments.IsValid = true;    
    else
         arguments.IsValid = false;
}

在网页上再添加一个 CustomValidator 控件,再设一下要验证的控件ID把 ControlToValidate 设成 UserName,
主要设置客户端验证方法 ClientValidationFunction 为 ValidationFunctionName,如:<asp:CustomValidator ID="CustomValidator1" runat="server" ControlToValidate="UserName" ClientValidationFunction="ValidationFunctionName"
                ErrorMessage="被注册的用户名"></asp:CustomValidator>,然后在Check.aspx 里面完成检查,在我这里是如果可用就往网页上写 1 否则 写 0 ,注意:在Check.aspx 输出的地方一定要调用        Response.Clear() 和 Response.End() 来保证输出的信息只有 1 或 0,当前你也可以用别的方法输出,我这里为了快速实现使用了这种方法,我是在PageLoad 里面与的,如下

Response.Clear();
//检查用户名
if (CheckUserName())
     Response.Write("1");
else
      Response.Write("0");
Response.End();

转载于:https://www.cnblogs.com/liyejun/archive/2009/03/25/1421241.html

CustomValidator控件应用小例相关推荐

  1. 解决CustomValidator控件在Wizard控件验证失效果问题

    今天在学习Wizard控件的时候  放了个CustomValidator控件来验证Textbox的内容. 刚开始没有使用 <StepNavigationTemplate></Step ...

  2. CustomValidator控件使用心得

    CustomValidator控件使用心得 前两天在博问上提过一个关于Custom Validation 控件使用的问题结果没有人给与回答. 具体场景如下: 1.需要从javascript异步调用服务 ...

  3. CustomValidator 控件

    ASP.NET CustomValidator 控件 Validation 服务器控件 定义和用法 CustomValidator 控件可对输入控件执行用户定义的验证. 属性属性 描述 BackCol ...

  4. C#报表控件ReportViewer rdlc 例(1) .

    使用RDLC报表(一) 1       建立数据源 启动VS2005新建一个窗体项目,命名为TestProj 在左边的窗体内选择"添加新数据源"或在菜单上操作"添加新数据 ...

  5. Python机器视觉--OpenCV入门--鼠标事件与TrackBar控件(含小项目:OpenCV调色板)

    1.鼠标事件与TrackBar控件 1.1控制鼠标 OpenCV允许我们对窗口上的鼠标动作做出响应. setMouseCallback(winname, callback, userdata) win ...

  6. QT 调用捷宇摄像头OCX控件,界面显示的控件非常小的问题。

    QT调用捷宇控件的问题,控件再qaxtive容器显示太小如下图: 上代码:这个代码都包括一个定时器的延时作用,控件小时因为打开摄像头在初始化里面 正确的代码如下:注意圈的部分 参考博客 https:/ ...

  7. CustomValidator控件

    CustomValidator是用户自定义的验证控件,用来响应用户自定义的验证.可以使JS的客户端函数,也可以是写在后台代码中的服务端验证函数. 以下是CustomValidator的常用属性 属性 ...

  8. IOS 初级开发入门教程(四)基础控件使用小练习

    前言 看完前面3章的内容,基本对IOS开发有一些认识了,这章我们开始动手去实践做点小练习,学习如何创建并设置标签和按钮(Label & Button)的相关属性,以及通过一个交互式的案例演示动 ...

  9. Webbrowers控件的小技巧

    我最近接触webbrowers 这个控件比较多,感觉用起来比较顺手吧.可以做很多操作. 貌似很多网络模拟有时候都内置这个控件或者类似的控件,但这样子速度就不能跟那些单纯用API 构建数据包比了. 我一 ...

最新文章

  1. 2017-2018-2 20165236 实验四《Android开发基础》实验报告
  2. Cassandra 处理客户端请求
  3. DIV与SPAN之间有什么区别
  4. Java程序员必看!2021最新爱奇艺Java社招面试题目
  5. 年末将至,值得你关注的16个Java 开源项目!
  6. tableau实战系列(二十八)-以可视化的方式打开关联分析算法购物篮分析(Market Basket Analysis)
  7. m5310模组数据上传至onenet_NBIOT模组M5310接入中国移动物联网开放平台示例文档
  8. 怎么把c语言转换汇编程序,如何把汇编语言转换成C语言
  9. Vue 爬坑之路(四)—— 与 Vuex 的第一次接触
  10. NS方程求解-NSFnet
  11. 免费申请微软云教育服务器,自助免费申请Office365教育版,免费5TOneDrive云盘详细教程...
  12. android 减小apk大小,Android Studio如何减小APK体积
  13. 解决安装宝塔面板“ERROR: Failed to download, please try install again”错误
  14. python 画正弦曲线
  15. html魔方转动效果,简单说 用CSS做一个魔方旋转的效果
  16. 计算机专业就业率2018,2018年就业质量报告发布,这个专业就业率竟高达100%!
  17. java快速生成数据库文档
  18. 【ARM】新唐NUC977移植WK2124驱动
  19. 武汉服务器维修哪里专业报价,入门服务器 武汉IBM X3100报价5500元
  20. 十点老师来了,坐好。开始上课了!!

热门文章

  1. 千金万银不如一技在身
  2. Canvas画雪花图~
  3. iphone8 html5检测,怎么检测iPhone8的真假 查这些步骤确保真机
  4. 大话Java堆的分区Eden、From Survivor、To Survivor、老年代
  5. MultipartFile 支持什么类型_因为卡,白白换了六台电脑,原来重装系统如此简单!支持所有系统...
  6. Windows系统的复制、粘贴效果失效解决办法
  7. AI绘图工具能取代设计师吗?
  8. OpenMV实现多色块监测功能、测距功能---robomaster飞镖制导一种思路
  9. hdu5925 Coconuts(坐标离散化)
  10. JAVA龟兔赛跑案例