导步js(javascript和ajax应用) c#

// 技术:------在c#平台企业版中应用异步JavaScript技术和XML(AJAX)

// 问题:实现在文本框失去焦点时验证用户名是否存在.

// 解决方案:
// ---------1.在JS文件里面写==异步JAVASCRIPT==的方法
// ---------2.在c#语言的web程序中添加一个 .ashx文件(一般处理程序)
// ---------3.在文本框的失去焦点属性(onblur)引用第二步中的方法

// ***************************js文件***********************

/// <summary>
/// 异步JAVASCRIPT[无刷新验证AJAX]
/// (参考资料网址)http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro2/
/// http://www.nirvanastudio.org/java/ajax-with-j2ee.html
/// </summary> 

function getData()
{
    var idField 
= document.getElementById("txtUserName");//获取页面用户输入的值--txtUserName 为页面文本框的id
    var url = "Validator.ashx?VCode=" + escape(idField.value);//你要请求的资源
    
    
//第一步:声明XMLHttpRequest对象(此例为:[XMLHttpRequestObject]),它是AJAX的核心
    var XMLHttpRequestObject = false;
    
//第二步:获取XMLHttpRequest对象
    if (window.XMLHttpRequest) {
      XMLHttpRequestObject 
= new XMLHttpRequest();
    }
 else if (window.ActiveXObject) {
      XMLHttpRequestObject 
= new
        ActiveXObject(
"Microsoft.XMLHTTP");
    }

    
//第三步:通过这个对象的OPEN方法向服务发送请求
    
//       该函数声明为XMLHttpRequest.open(String method, String URL, boolean asynchronous);
    
//       method是请求的方式,可以为GET和POST URL是你要请求的资源 asynchronous是布尔类型,为true表示交互设置为异步
    if(XMLHttpRequestObject) {
        XMLHttpRequestObject.open(
"GET", url,true);
    
//第四步:由于将交互设置为异步方式,因此要为指定一个回调函数[此处的callback()]:剩下的事就交给回调函数处理了。
    
//       判断是否已经调用了而且readyState是4,表示XMLHttpRequest的调用已经完成。HTTP状态代码200表示一个成功的HTTP交互。
      XMLHttpRequestObject.onreadystatechange = function callback()
      
{
        
if (XMLHttpRequestObject.readyState == 4 &&
          XMLHttpRequestObject.status 
== 200{
          
//显示提示信息的地方--lblInfo为你页面上显示信息的标签
          document.getElementById("lblInfo").innerText =  XMLHttpRequestObject.responseText;  
          delete XMLHttpRequestObject;
          XMLHttpRequestObject 
= null;
        }

     }

      
//第五步:调用send()(参数是空或是null)将会发起一次请求,对于GET方式的请求,两次同样的请求将会得到相同的结果
      XMLHttpRequestObject.send(null);
    }

  }


// ****************.ashx文件*************************
<% @ WebHandler Language = " C# "  Class = " Handler "   %>
using  System;
using  System.Web;
using  SunSoft.BLL;

public   class  Handler : IHttpHandler  {
    
    
public void ProcessRequest (HttpContext context) {             
        FuncLogic obj 
= new FuncLogic();

        
string tableName = context.Request.QueryString["VCode"].ToString().Trim();
        
string message = "";
        
if (tableName == "")
        
{
            message 
= "表名不能为空!";            
        }

        
else if (tableName.Length == 1)
        
{
            message 
= "表名不能少于2位!";
        }

        
else
        
{
            
if (obj.checkTableNameIfExist(tableName))
                message 
= "恭喜,该用户名可用!";
            
else
                message 
= "该用户名已经存在,不可用!";
        }

        context.Response.ContentType 
= "text/plain";
        context.Response.Write(message);
    }

 
    
public bool IsReusable {
        
get {
            
return false;
        }

    }

}


// ***************页面引用****************
< asp:TextBox ID = " txtUserName "  runat = " server "  onblur = " getData() " ></ asp:TextBox ></ td >





















 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值