求:asp:TextBox失去焦点后,判断该TextBox中的用户名是否可用(重复),并在该TextBox后显示可用或不可用图标..........PS:菜鸟问题..还请高手给段代码参考!

解决方案 »

  1.   

    TextBox的AutoPostBack属性设为True
    然后写TextChange事件
      

  2.   


    private void txtInvoiceDept_TextChanged(object sender, System.EventArgs e)
    {
    this.ddlInvoiceDept.Items.Clear(); Hashtable pars = new Hashtable();

    if(this.txtInvoiceDept.Text.Trim() != "")
    pars.Add("OwnerName",this.txtInvoiceDept.Text.Trim()); ArrayList list = T_GG_SJ_CustomerProc.GetList(pars); this.ddlInvoiceDept.DataSource = list; this.ddlInvoiceDept.DataValueField = "OwnerNo"; this.ddlInvoiceDept.DataTextField = "OwnerName"; this.ddlInvoiceDept.DataBind(); this.ddlInvoiceDept.Items.Insert(0,new ListItem("全部"));
    }这是代码,作用是根据输入的内容从数据库中查出相应的数据源绑定到DropDownList
      

  3.   

    用ajax,textbox失去焦点后,用ajax到后台验证用户是否存在
      

  4.   


    function checkNickName()
    {
    if(document.getElementById("txtNickName").value!="")
    {
    //检测用户有无输入昵称
    document.getElementById("lblError").innerText="正在检测,请稍候...";
        var xml=new ActiveXObject("Microsoft.XMLHttp");
        xml.open("post","CheckNickName.aspx?nickName=" + escape(document.getElementById("txtNickName").value),"false");
        xml.send("");
        var result=xml.responseText;
        if (result=="True")
        {
    document.getElementById("lblError").innerText="Sorry,该昵称已被注册";
        }
        else if (result=="False")
        {
    document.getElementById("lblError").innerText="恭喜,该昵称可以使用";
        }
        //与服务器通信失败
        }
    }
      

  5.   

    <input type="text"  onblur="javascript:checknackname();"/>
      

  6.   

    TextBox1_TextChanged时间貌似不行,因为TextChanged时间是判断两次焦点都在TextBox框内的时候,这两次的Text属性的内容是否有变化,即使你讲AutoPostBack 设置成True!
      

  7.   

    http://download.csdn.net/down/554726/dupeng0811
    http://hi.baidu.com/lovedupeng/blog/item/aa15bc2f5f22333e1f3089ff.html
      

  8.   

    lmc1986..请问一下...后台那边如何接收呢?..Ajax..我没用过
      

  9.   

    lmc1986...可以发一下CS的代码吗?
      

  10.   

    onfocusout 在移动焦点到其它元素之后立即触发于当前拥有焦点的元素上触发。 
      

  11.   

    以测试:
    <script type="text/javascript">            var XMLHttp = null;
            function checkNickName()
            {
      
                try
                {
                    xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
                }
                catch(err1)
                {
                    try
                    {
                        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                    }
                    catch(err2)
                    {
                        xmlHttp = new XMLHttpRequest();
                    }
                }            var Text1 = document.getElementById("txtNickName");
                var url = "Default2.aspx?User=" + Text1.value;
                xmlHttp.open("GET",url,true);
                xmlHttp.onreadystatechange = OnHandler;
                xmlHttp.send(null);      }
          function OnHandler()
        {
          if(xmlHttp.readyState == 4)
          {
            var isValid = xmlHttp.responseText;
            var exists = document.getElementById("exsits");
            exists.innerHTML = isValid.substring(0,4);
          }
        }            </script>
       <input type="text" id="txtNickName"  onblur="checkNickName()"/>
                    <label id="exsits"></label>
    新建个Default2.aspx protected void Page_Load(object sender, EventArgs e)
        {        string user = this.Request.QueryString["User"];
            if (SqlServer.User.UserNameExists(user))  //执行语句数据库的数据是否存在
            {
                Response.Write("True");
            }
            else
            {
                Response.Write("False");
            }
        }