【转】 ASP.NET使用ICallbackEventHandler无刷新验证用户名是否可用
功能说明:当用户在用户名输入框输入字符并焦点离开此输入框时,自动到数据库用户表中验证此用户名是否已被注册,如果已被注册,显示【不可用】,反之,显示【可用】,期间页面不刷新,读者也可以考虑将提示文字换成图片等更佳体验的提示方式。
(只是的个Demo,没有考虑诸如Sql注入等问题,期间参考了网上的个别关于ICallbackEventHandler使用的案例。这个Demo是今天在首页看了某个大虾关于用ICallbackEventHandler无刷新获取服务器时间后做的,文章地址忘了,呵呵~,等找到后补上)。
前台代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Ver.aspx.cs" Inherits="Ver" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title> <script language="javascript">
function VerName() {
//传给后台的参数,在方法RaiseCallbackEvent()中实现
var message = document.getElementById("txtName").value;
var context = "";
<%=sCallBackFunctionInvocation%>;
}
function ShowMessage(Mes, context) {
//Mes 是后台GetCallbackResult()的返回值
var spMes = document.getElementById("spMes");
if(Mes == "true") {
spMes.innerHTML = "可用";
}
else{
spMes.innerHTML = "不可用";
} }
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
用户名:<asp:TextBox ID="txtName" runat="server" onblur="VerName()"></asp:TextBox>
<span id="spMes"></span>
<br />
密 码:<asp:TextBox ID="txtPwd" runat="server"></asp:TextBox>
</div>
</form>
</html>
后台代码:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.Data.Common; public partial class Ver : System.Web.UI.Page,ICallbackEventHandler
{
public string sCallBackFunctionInvocation;
//接收前台传入的值
string userName = ""; void Page_Load(object sender, System.EventArgs e)
{
//注册脚本到前台
sCallBackFunctionInvocation = Page.ClientScript.GetCallbackEventReference(this, "message", "ShowMessage", "context");
} #region ICallbackEventHandler 成员 public string GetCallbackResult()
{
using (SqlConnection conn = new SqlConnection(
System.Configuration.ConfigurationManager.AppSettings["ConnStr"]))
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = string.Format(
"Select Count(*) From PUsers Where UserName='{0}'",
userName);
conn.Open();
if (int.Parse(cmd.ExecuteScalar().ToString()) == )
{
return "false";
}
else
{
return "true";
}
}
}
//接收前台参数
public void RaiseCallbackEvent(string eventArgument)
{
userName = eventArgument;
} #endregion
}
【转】 ASP.NET使用ICallbackEventHandler无刷新验证用户名是否可用的更多相关文章
- AJAX实现无刷新验证用户名
register.php <html> <head> <meta http-equiv="content-type" content="te ...
- Ajax实现注册无刷新验证用户名是否存在
1. [代码][JavaScript]代码 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ...
- 11月10日上午ajax基础知识、用ajax做登录页面、用ajax验证用户名是否可用、ajax动态调用数据库
1.ajax的基础知识 ajax是结合了jquery.php等几种技术延伸出来的综合运用的技术,不是新的内容.ajax也是写在<script>标签里面的. 如果使用ajax一定是要有1个处 ...
- ajax基础知识、用ajax做登录页面、用ajax验证用户名是否可用、ajax动态调用数据库
1.ajax的基础知识 ajax是结合了jquery.php等几种技术延伸出来的综合运用的技术,不是新的内容.ajax也是写在<script>标签里面的. 如果使用ajax一定是要有1个处 ...
- 使用PHP中的ajax做登录页面、验证用户名是否可用、动态调用数据库
1.ajax的基础知识 ajax是结合了jquery.php等几种技术延伸出来的综合运用的技术,不是新的内容.ajax也是写在<script>标签里面的. 如果使用ajax一定是要有1个处 ...
- 14.ajax基础知识、用ajax做登录页面、用ajax验证用户名是否可用、ajax动态调用数据库
1.ajax的基础知识 ajax是结合了jquery.php等几种技术延伸出来的综合运用的技术,不是新的内容.ajax也是写在<script>标签里面的. 如果使用ajax一定是要有1个处 ...
- Asp.net 2.0 无刷新图片上传 显示缩略图 具体实现
简单三步实现图片无刷新上传:注意是上传,至于上传时的验证,比如图片的尺寸,大小,格式判断.限制等,自行解决. 兼容性想还不错:FF,CH,IE,猎豹,都是可以实现的.如果看到回显.当然就是成功了. 经 ...
- ASP.NET ashx实现无刷新页面生成验证码
现在大部分网站登陆时都会要求输入验证码,在网上也看了一些范例,现在总结一下如何实现无刷新页面生成验证码. 效果图: 实现方式: 前台: <div> <span>Identify ...
- java登陆验证码与JS无刷新验证
最近公司的项目的登陆模块由我负责,所以就做了个登陆小功能进行练手,其包括了用jQuery对用户名和密码进行不为null验证,和出于安全性考虑加了一个验证码的校验 别的不说先上代码 controller ...
随机推荐
- oracle知识总结
Oracle 分页案例: SELECT * FROM(SELECT A.*, ROWNUM RN FROM (SELECT * FROM Table_name) AWHERE ROWNUM <= ...
- [SCOI2009]windy数 BZOJ1026 数位dp
题目描述 windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道, 在A和B之间,包括A和B,总共有多少个windy数? 输入输出格式 输 ...
- win 10 问题
1. windows 10 已联网 ,但 访问应用商店 提示 未连接网络. step1: 打开网络和 internet 设置.. step2: 取消 打圈的 两个选择..!就好.
- npm 安装 sass=-=-=
先按照 cnpm .....因为外网安不上... cnpm install node-sass --save-dev cnpm install sass-loader --save-dev
- vue 子页面,向父页面 传值...
子组件 通过 事件 向父组件传值..... 父组件 方法: methods: { appendData: function (list) { console.log(list); for (var i ...
- C++_异常3-异常机制throw try catch
下面介绍如何使用异常机制来处理错误. C++异常是对程序运行过程中发生的异常情况的一种响应. 异常提供了将控制权从程序的一部分传递到另一部分的途径. 对异常的处理有3个组成部分: 1)引发异常 -- ...
- P4331 [BOI2004]Sequence 数字序列 (左偏树)
[题目链接] https://www.luogu.org/problemnew/show/P4331 题目描述 给定一个整数序列\(a_1, a_2, ··· , a_n,\)求出一个递增序列\(b_ ...
- BZOJ3065 带插入区间K小值 || 洛谷P4278
这是一道让我崩溃的题...... 然鹅洛谷上时限被改然后只有20分......好像所有人都被卡了(雾) 由于替罪羊树不是依靠旋转操作而是依靠暴力重构的方式维护树的平衡,所以我们可以考虑使用替罪羊树套区 ...
- 2017西安区域赛A / UVALive - 8512 线段树维护线性基合并
题意:给定\(a[1...n]\),\(Q\)次询问求\(A[L...R]\)的异或组合再或上\(K\)的最大值 本题是2017的西安区域赛A题,了解线性基之后你会发现这根本就是套路题.. 只要用线段 ...
- Phyton Flask框架学习记录。
注意:在左侧菜单栏(在JQuery插件库下载的)右边是采用<iframe> 标签嵌入其他页面,此时标签的src应用用后台中的方法名称(本人测试用的是无参数的方法), 而页面跳转window ...