专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > ASP

ASP.NET上实现AJAX注册提醒

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
ASP.NET下实现AJAX注册提醒

          Ajax全称是,主要是利用JavaScript实现异步的数据传输,首先说异步,异步是当前操作进行的时候,用户可以进行别的工作,拿最典型的注册来说,用户在填完用户名之后,网站将用户名发回服务器进行判断当前用户名是否存在的时候,用户可以继续往下填写其他信息,在用户进行其他工作的时候,服务器就将判断结果发回到浏览器了,这样用户不用等,大大的提高了用户的体验。

    Ajax传输数据有很多中方式XML是一中,其他比如直接传字符串,html页面,也可以传CVS(用符号分割数据,然后读取的时候根据符号将数据分隔开),或者是Json数据格式,Json有点像实体,用来封装数据,然后传输数据的时候传的是Json对象。

 

下面是ajax实现注册用户名时提示的一个实例,如果没在VS里实现过ajax的读者可以跟着我一步一步的往下做:

 

首先在vs里建立一个web页面,添加两个框(用户名、密码),添加一个按钮(注册);html代码页在文本框后面添加 <span>标签(这个页没有后台的C#代码),

register.css为样式文件,ulties.js封装了创建请求对象(ajax中用户传递客户端发出的请求)的方法,register.js封装了剩余的js代码

代码如下

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ajaxDemon.aspx.cs" Inherits="WebDevelop.ajaxDemon" %>

<!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>
    <link href="css/register.css" rel="stylesheet" type="text/css" />
    <script src="js/ulties.js" type="text/javascript"></script>
    <script src="js/register.js" type="text/javascript"></script>
</head>
<body>
    <form id="form1" runat="server">
        <div id="register">
            <p>
                <asp:label runat="server" text="用户名 "></asp:label><asp:TextBox ID="txtUserName" runat="server"></asp:TextBox><span id="remind"></span>
            </p>

            <p> 
                <asp:Label ID="Label1" runat="server" Text="真实姓名"></asp:Label><asp:TextBox ID="txtTeacherName" runat="server"></asp:TextBox>
            </p>

            <p>
                <asp:Label ID="Label2" runat="server" Text="密 码 "></asp:Label><asp:TextBox ID="txtPassword" runat="server"></asp:TextBox>
            </p>

            <asp:Button ID="btnRegister" runat="server"  Text="注册" />

        </div>
    </form>
</body>
</html>

接下来创建ulties.js文件:

function createRequest() {
    try {
        //创建XMLHttpRequest对象,适合非IE
        request = new XMLHttpRequest();
    } catch (tryMS) {
        try {
            //创建请求对象,适合高版本IE
            request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (otherMS) {
            try {
                //创建请求对象,适合低版本
                request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (failed) {
                request = null;
            }
        }
    }
    return request;

}

 

register.js文件中的代码:

//页面加载时执行iniPage函数
window.onload = initPage;

function initPage() {
    //将checkUserName函数绑定到txtUserName控件的onblur方法
    document.getElementById("txtUserName").onblur = checkUserName;
}



function checkUserName() {
    //获得注册的用户名
    var userName = document.getElementById("txtUserName").value;
    if (userName == "") {
        return;
    }
    //创建请求对象
    userNameRequest = createRequest();
    if (userNameRequest == null) {
        alert("未成功创建请求对象");
    }
    else {
        //去掉用户名中可能包含的空格
        var username = escape(userName);
        //使用get方式传值时,需要将参数写入到url中
        var url = "AjaxUserNameCheck.aspx?username=" + username;
        //设置服务器响应时的回调函数
        userNameRequest.onreadystatechange = showUserNameStatus;
        //建立请求,Get表示使用get方法传递URL,true表示异步传输
        userNameRequest.open("GET", url, true);
        //发送请求:open方法中,使用get时send的参数为null,使用post时要传递的参数
        userNameRequest.send(null);

    }
}
//请求对象的回调函数,服务器有回应时调用
function showUserNameStatus() {
    //服务器状态
    if (userNameRequest.readyState == 4)
        if (userNameRequest.status == 200) {
            //向id为remind的标签中写入传回的内容
            document.getElementById("remind").innerHTML = userNameRequest.responseText;
        }
}


建立另一个web页,作为服务器端,在后台Page_Load事件中代码文件中写入如下代码:

	    //获取客户端传来的用户名
            string username = Request["username"].ToString();
            //判断用户名是否被占用,这里可以换成从数据库查询的结果
            if (username=="xqf")
            {
                
                Response.Clear();
                //回复客户端
                Response.Write("该用户名以被占用");
                Response.End();
            }
            else
            {
                Response.Clear();
                Response.Write("该用户名尚未被占用");
                Response.End();
            }


现在整个应用就构件好了(没有付CSS文件的内容,样式读者可随便定义)。执行一下网页,结果如下:

 



 

1楼lfmilaoshi5天前 10:57
初步学习,积累。。。。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

  • ASP怎么隐藏表单

    ASP如何隐藏表单 <%if Cookies_Toy ="" then response.write "<a href='login.asp'>登录</a> <a href='reg.asp'>注册</a>" ...

  • 为何js调用css脚本后没效果

    为什么js调用css脚本后没效果 这个是css的脚本代码: body,ul,li{margin: 0; padding: 0; border: 0;} body {background: #f5f...

  • 怎么伪造post请求,求指点。

    如何伪造post请求,求指点。。。 要查询大批(也就几万个)运单的状态,那查询网站一次最多查24个,这一个个搞会搞死人的。。 有...

  • Asp.net_简略代码设置GridView自适应列宽不变形

    Asp.net_简单代码设置GridView自适应列宽不变形 动态绑定的GridView由于列数不固定,而列又太多(博主做的这个项目有150个左右的字段...

  • ASP.NET上实现AJAX注册提醒

    ASP.NET下实现AJAX注册提醒 Ajax全称是,主要是利用JavaScript实现异步的数据传输,首先说异步,异步是当前操作进行的时候,用...

  • aspnet_regiis装配出错:0x80070005 拒绝访问

    aspnet_regiis安装出错:0x80070005 拒绝访问 点击右边红色标题查看本文完整版:aspnet_regiis安装出错:0x80070005 拒绝访问安装...

  • 关于网站边框解决方法

    关于网站边框 像hao123这样的网站上的边框是着么弄的?背景图片吗?http://www.hao123.com 另外哪个素材网站有实用的这内素材 -----...

  • ! 多表分组查询统计

    求助!! 多表分组查询统计 高手们,帮帮忙! 用户表 D_user 为 ID Username GroupID 1 张三 2 2 李四 2 3 王五 ...

  • 在Paypal交付的同时,把表单的数据提交给数据库

    在Paypal提交的同时,把表单的数据提交给数据库 本帖最后由 liuyang2708 于 2012-11-20 23:14:54 编辑 在提交这个支付...

  • 虚拟目录上JavaScript不能正常执行

    虚拟目录下JavaScript不能正常执行 各位大侠好,我在同一台服务器上用两种方式部署同一个网站。 第一种方法:在IIS下直接建一个网站...

热门推荐: