小弟从事ASP.NET开发,但不使用控件,请问下如何在用户注册时,检测用户名是否已经存在,用AJAX技术,不使用控件...谢谢了,小弟从事纯静态页面开发,虽然用的是ASP.NET,但不使用控件,另外也希望志同道合的朋友,加我好友,QQ:451198302,欢迎大家,我们一起进步,一共成长。

解决方案 »

  1.   


    后台using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Data;
    using Xy.GamePt.VO;
    using Xy.GamePt.BO;
    using System.Collections;public partial class Test : System.Web.UI.Page
    {
        //添加一个 AjaxPro.HttpSessionStateRequirement 枚举的值到你的 AjaxPro.AjaxMethodAttribute中.    //例如:
        //[AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.Read)]    
        //现在你就可以像下面这样存取Session的值了: this.Session["0"].ToString().
        //另外一个问题:如何在AjaxMethod中使用Cookie?     //答案是不能使用"this"的引用存取cookie ,你必须使用HttpContext.Current    //例如:
        //HttpContext.Current.Request.Cookies[Name].Value.    protected void Page_Load(object sender, EventArgs e)
        {
            AjaxPro.Utility.RegisterTypeForAjax(typeof(Test)); 
            
        }    [AjaxPro.AjaxMethod()]   
        public string GetServerTime()
        {
            System.Threading.Thread.Sleep(2000);
            return DateTime.Now.ToString();
        }    [AjaxPro.AjaxMethod()]
        public DataSet GetDataSet()
        {
            DataSet ds = new DataSet();
            DataTable dt = new DataTable();
            dt.Columns.Add("id", typeof(int));
            dt.Columns.Add("parentId", typeof(int));
            dt.Columns.Add("name", typeof(string));
        
            dt.Rows.Add(1, 0, "A-DGamename1");
            dt.Rows.Add(2, 1, "A-DGamename2");
            dt.Rows.Add(3, 1, "A-DGamename3");
            dt.Rows.Add(4, 1, "A-DGamename4");
            dt.Rows.Add(5, 0, "A-DGamename5");
            dt.Rows.Add(6, 5, "A-DGamename6");        dt.Rows.Add(1, 0, "E-HGamename1");
            dt.Rows.Add(2, 1, "E-HGamename2");
            dt.Rows.Add(3, 1, "E-HGamename3");
            dt.Rows.Add(4, 1, "E-HGamename4");
            dt.Rows.Add(5, 0, "E-HGamename5");
            dt.Rows.Add(6, 5, "E-HGamename6");
            
            ds.Tables.Add(dt);
            return ds;
        }    [AjaxPro.AjaxMethod()]
        public IList<Game> GetGameList()
        {
            return GameBO.GetGameList();
        }    [AjaxPro.AjaxMethod()]
        public Game GetGame()
        {
            return GameBO.GetGame();
        }    /// <summary>
        /// 返回Ilist
        /// </summary>
        /// <param name="parameter">脚本字符串参数</param>
        /// <param name="arr">脚本数组参数</param>
        /// <param name="xiaoxin">脚本对象参数</param>
        /// <returns></returns>
        [AjaxPro.AjaxMethod()]
        public IList GetData(string parameter,string [] arr,object obj)
        {
            object xxxx = obj;
            Hashtable ht = xxxx as Hashtable;
            string sss = parameter;
            Array aaaa = arr;
            //Hashtable ht = arr as Hashtable;
            return TestBO.GetIlist();
        }
    }  前台 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Test.aspx.cs" Inherits="Test" %><!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>
    </head>
    <body>
        <form id="form1" runat="server">
        <select id="Select1">
            <option></option>
        </select>
          <div id="loadinfo" style="visibility:hidden;position:absolute;left:0px;top:0px;background-color:Red;color:White;">Loading</div>
       
            <input id="Button1" type="button" value="Get StrServerTime" onclick ="javascript:GetTime();void(0)" />
            <input id="Button2" type="button" value="DataSet" onclick ="javascript:Change();void(0)" />
              <input id="Button3" type="button" value="DataiList" onclick ="javascript:GetIListData();void(0)" />
               <input id="Button3" type="button" value="GetGameList" onclick ="javascript:GetGameList();void(0)" />
                <input id="Button3" type="button" value="GetGame" onclick ="javascript:GetGame();void(0)" />
            <div id="newDG"></div>        <script type="text/javascript"  language="javascript">
                // loading效果
                AjaxPro.onLoading = function(b) {
                    var a = document.getElementById("loadinfo");
                    a.style.visibility = b ? "visible" : "hidden";
                }
                /* 客户端调用返回的字符串--------------------*/
                function GetTime() {
                    // 调用服务端方法
                    //调用方法:类名.方法名 (参数为指定一个回调函数)
                    Test.GetServerTime(callback);
                }
                function callback(res)  //回调函数,显示结果
                {
                    alert(res.value);
                }
                /*-----------------------------------------*/
                /* 客户端调用返回的DataSet--------------------*/           function Change() {
                   Test.GetDataSet(change_callback)
               }
               function change_callback(response) {
                   var ds = response.value;
                   var content = document.getElementById("newDG");
                   var table = null;
                   for (var i = 0; i < ds.Tables[0].Rows.length; i++) {
                       if (i == 0) {
                           table = ds.Tables[0].Rows[i].name + "<br>";
                       }
                       else {
                           table += ds.Tables[0].Rows[i].name + "<br>";
                       }
                   }
                   content.innerHTML = table;
               }
               /*----------------------------------------------*/           /* 客户端调用返回的IList--------------------*/
               function GetIListData() {
                   var arr = Array("1", "2", "5", "64", "78");
                   
                   function User(name, age) {
                       this.name = name;
                       this.age = age;
                       this.canFly = false;
                   }
                   var obj = new User("234", "5345");               Test.GetData("sdfsd", arr, obj, GetIListData_callback);
               }
               function GetIListData_callback(response) {
                   var ilist = response.value;
                   var content = document.getElementById("newDG");
                   var table = null;
                   for (var i = 0; i < ilist.length; i++) {
                       if (i == 0) {
                           table = ilist[i][1] + "|" + ilist[i][2] + "<br>";
                       }
                       else {
                           table += ilist[i][1] + "|" + ilist[i][2] + "<br>";
                       }
                   }
                   content.innerHTML = table;
               }
               /*----------------------------------------------*/           /* 客户端调用返回的范型GameList--------------------*/           function GetGameList() {
                   Test.GetGameList(GetGameList_callback)
               }
               function GetGameList_callback(response) {
                   var gameList = response.value;
                   var content = document.getElementById("newDG");
                 //  var table = game.StrGameName;
                   var table = null;
                   for (var i = 0; i < gameList.length; i++) {
                       if (i == 0) {
                           table = gameList[i].StrGameName + "<br>";
                       }
                       else {
                           table += gameList[i].StrGameName + "<br>";
                       }
                   }
                   content.innerHTML = table;
               }
               /*----------------------------------------------*/
               /* 客户端调用返回的实体Game--------------------*/
               function GetGame() {
                   Test.GetGame(GetGame_callback)
               }
               function GetGame_callback(response) {
                   var game = response.value;
                   var content = document.getElementById("newDG");
                   var table = game.StrGameName;               content.innerHTML = table;
               }
               /*----------------------------------------------*/      </script>
        </form>
    </body>
    </html>
      

  2.   

    小弟从事ASP.NET开发,但不使用服务器控件,请问下如何在用户注册时,检测用户名是否已经存在,用AJAX技术,不使用控件...谢谢了,小弟从事纯静态页面开发,虽然用的是ASP.NET,但不使用控件,另外也希望志同道合的朋友,加我好友,QQ:451198302,欢迎大家,我们一起进步,一共成长。
      

  3.   

    ajax异步获取数据,查询用户数据
    <script type="text/javascript">
      var xmlHttp;
      function createXMLHttpRequest()
      {
      if(window.ActiveXObject)
      {
      xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
      }
      else if(window.XMLHttpRequest)
      {
      xmlHttp = new XMLHttpRequest();
      }
      }
      function CheckUserName()
      {
      var us=document.getElementById("txtname").value;
      if(us!="")
      {
      createXMLHttpRequest();
      var url= "RegistValidate.ashx?username="+escape(document.getElementById("txtname").value);
      xmlHttp.open("GET",url,true);
      xmlHttp.onreadystatechange=ShowResult;
      xmlHttp.send(null);
      }
      }
      function ShowResult()
      {
      if(xmlHttp.readyState==4)  
      {
      if(xmlHttp.status==200)
      {
      var s;
      s=xmlHttp.responseText;
      alert(s);
      }
      }
      }
    </script>
      

  4.   

    http://blog.csdn.net/wwfgu00ing/archive/2010/07/08/5721175.aspx
      

  5.   

    简单的jQuery检测注册用户名http://blog.csdn.net/gdjlc/archive/2009/11/20/4840261.aspx
      

  6.   

    既然这么排斥控件,就不应该用asp.net的页面事件模式,用asp.net MVC、ashx、webservice或WCF。
      

  7.   

    1楼,5楼正解,其中一个用的是ajax的动态连接库dll,后台注册,再声明上ajax的方法,前台就可以用javascript调用,5楼用的就是ajax的基础用法,声明,发送,返回这样的机制,就效率而言,5楼效率稍微高点
      

  8.   

    你跑到csdn上发帖抄一段“通用”代码,就没有想到这应该是包装为一个可复用的组件放在程序中,设计界面时直接拖进设计页面?
      

  9.   

    $.ajax({
                            type: "post",
                            data: "method=get" + '&name=' + name ,
                            url: "test.ashx",
                            success: function (status) {
                                if (status == 0) {
                                           alert(用户名存在)                   }
                                else if (status == 1) {
                                            alert("");
       
                  }
                                else if (status == 2) {
                                    alert("");
                                }
                                else{alert("");
    }
                            }
                        });
      

  10.   

    var isHave=JQuery.get('validuser.aspx?user');
    就行了。你要是自己写Ajax也可以,注意浏览器的支持问题建议你看看我的这个
    http://blog.csdn.net/wen158809179/archive/2010/02/04/5287454.aspx我这也有中文的JQuery文档,要的找我
      

  11.   

    lz 疯狂地表现自己不使用控件,已经能证明lz的实力了丛败中
      

  12.   

    建议lz用asp ,它没有服务器控件。真的没有
      

  13.   

    用5楼的解法就是了
    在你的input里加一个onblue就是了 <input name="username" onblue="CheckUserName()">
      

  14.   

    不用服务器控件,5楼人生如梦给出的正解
    那是最基础的Ajax,比较实用.
    LZ可以用一个页面只放用户名用户提交后检测是否可用再接着填写详细的.
      

  15.   

    在2005就有一个接口:ICallbackEventHandler可以实现ajax功能,那时候因为还没有updatapanel
    你去了解这个接口:ICallbackEventHandler。
      

  16.   

    只要能达到目标,用什么都没有关系,asp.net的控件很好用啊,用ajax技术也可以解决。
      

  17.   

    如果你对AJAX有点了解的话,我想这个问题很好解决。
    jquery中的AJAX很好,而且一点就会。
      

  18.   

    jquery ajax 简单 易懂