我有二个textbox ,一个名字是id ,一个是姓名name,
然后,当我输入ID后(从数据库查询出姓名),对应的姓名textbox里面就要显示姓名
但我在asp:textbox里面没有找到onchange事件,这样怎么做异步处理啊,ajax技术ID textbox失去光标,就去做异步处理
谢谢大家了,本人在学习ASP.net 

解决方案 »

  1.   

    onblur="your javascript function"
      

  2.   

    用什么方法实现ajax?直接xmlhttprequest?
      

  3.   

    用dotnet的控件吧。看ScriptManager和UpdatePanel
      

  4.   

    onblur    失去焦点的事件
    里面可以取姓名 
      

  5.   

    asp:textbox 这里没有onchange时间,这是服务器控件,直接用html里的<text>
      

  6.   

    asp:textbox 可以使用onchange事件。
      

  7.   

    失去光标触发事件只能用html的TEXT文本框了。ajax技术也要事件触发。
      

  8.   


    <body>
        <form id="form1" runat="server">
        <div>
            <input id="Text1" runat="server" type="text" onblur="GetName();" />
            <input id="Text2" runat="server" type="text" /></div>
        </form>
    </body><script language="javascript" type="text/javascript">
        function GetName()
        {
            var InsertID = document.getElementById("Text1");
            var ShowName = document.getElementById("Text2");
            ShowName.value = Default10.Get(InsertID.value).value;
        }
    </script>    [AjaxPro.AjaxMethod]//申明是ajaxPro方法
        public string Get(string ID)
        {
            if (ID != "")
            {
                string strGetName = "select 字段 from 表 Where id=" + ID;
                SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["a"]);
                con.Open();
                SqlCommand com = new SqlCommand(strGetName, con);
                string Name = Convert.ToString(com.ExecuteScalar());
                if (Name != "")
                {
                    return Name;
                }
                else
                {
                    return "无此ID";
                }        }
            else
            {
                return null;
            }
        }
      

  9.   

    利用 ICallbackEventHandler接口,参考:
    http://www.cnblogs.com/kokoliu/archive/2007/10/07/916427.html
      

  10.   

    如果用ajax就不需要使用服务器控件了,直接用html控件就可以了
      

  11.   

    html控件 怎么调用aspx里面的方面啊,比如Xtextbox_click ()  Form_load函数等??
      

  12.   

    呵呵<asp:Label ID="Label3" runat="server" Text="申证单元代码:" Width="100px"></asp:Label>
                     <asp:TextBox ID="SzdyCodeTextBox" runat="server" Text='' AutoPostBack="true" OnTextChanged='SzdyCode_changed'>
                     </asp:TextBox>protected void SzdyCode_changed(object sender, EventArgs e)
        {        SZDYList obj = SZDYList.GetSZDYList(-1);
            if (obj.ContainsSzdyCode(SzdyCodeTextBox.Text))
            {
                LabelSzdyCode.Text = "很抱歉该申证单元已经存在!";
                LabelSzdyCode.ForeColor = System.Drawing.Color.Red;
            }
            else
            {
                LabelSzdyCode.Text = "申证单元 有效!";
                LabelSzdyCode.ForeColor = System.Drawing.Color.FromName("#6487DC");
            }    }大概这个样子,如果还有疑问可以 [email protected]
      

  13.   

    a页面:var xmlHttp;
            function createXMLHTTP()
            {
                if(window.ActiveXObject)
                {
            var browseVersion=["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.3.0","Msxml2.XMLHTTP","Microsoft.XMLHTTP"];
            for(var i=0;i<browseVersion.length;i++)
            {
            xmlHttp=new ActiveXObject(browseVersion[i]);
            }   
                }
                else if(window.XMLHttpRequest)
                {
                    xmlHttp=new XMLHttpRequest();
                }
                if (!xmlHttp)
                {
                    window.alert("不能创建XMLHttpRequest对象实例!");
                    return false;
                }
            }
            function $(id)
            {
                return document.getElementById(id);
            }
            function CheckUserName(obj,objMsg)
    {
    if(obj.value=="")
    {
    objMsg.innerHTML="请输入用户编号!";
    objMsg.style.cssText="font-size:9pt;color:red;background-color:#ffcccc;border:solid 1px #FA7835";
    }
    else
    {
    createXMLHTTP();
    var url="b.aspx?uid="+encodeURIComponent(obj.value)+"";
    xmlHttp.open("GET",url,true);
    xmlHttp.onreadystatechange=IsExistUserName;
    xmlHttp.send(null);
    }
    }
    function IsExistUserName()
    {
    if(xmlHttp.readyState==4)
    {
    if(xmlHttp.Status==200)
    {
        $("txtUserName").value=xmlHttp.responseText;
        $("msg").innerHTML="";
                                        $("msg").style.cssText="";
    }
    else
    {
    $("msg").innerHTML="错误"+xmlHttp.statusText;
    }
    }
    else
    {
    $("msg").innerHTML="正在提交数据...";
    }

    }
    用户编号: <asp:TextBox ID="txtUserID" runat="server" onblur="CheckUserName(this,msg)"></asp:TextBox>
        用户名:<asp:TextBox ID="txtUserName" runat="server" ></asp:TextBox><div id="msg"></div>
    b页面:
    protected void Page_Load(object sender, EventArgs e)
        {
           HttpContext.Current.Response.Clear();
                if (Request.QueryString["uid"] != null)
                {
                    string userID = Request.QueryString["uid"].ToString();
                    string returnValue = ValidateUser(userID);
                    if (returnValue.IndexOf("^") != -1)
                    {
                        HttpContext.Current.Response.Write(returnValue.Split('^')[1]);//如果用户存在,返回用户名
                        HttpContext.Current.Response.End();
                    }
                    else
                    {
                        HttpContext.Current.Response.Write("!!?");//如果用户不存在
                        HttpContext.Current.Response.End();
                    }
                }
        }
     private string ValidateUser(string userID)
        {
            using (System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection("server=.;database='NorthWind';uid=sa;pwd="))
            {
                try
                {
                    conn.Open();
                    string sql = "select EmployeeID,LastName from Employees where EmployeeID=" + userID + "";
                    System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(sql, conn);
                    System.Data.SqlClient.SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                    if (reader.Read())
                    {
                        return reader["EmployeeID"].ToString() + "^" + reader["LastName"].ToString();
                    }
                }
                catch (System.Data.SqlClient.SqlException ex)
                {
                    return ex.Message;
                }
                finally
                {
                    conn.Close();
                    conn.Dispose();
                }
                return "";
            }
        }
      

  14.   

    asp:textbox 没有onchange 但一样可以给他加上onchange失去光标时触发应该是 onblur 在onblur事件中 写js方法 至于用那种ajax方法 就看lz习惯那种了
      

  15.   

    这样也可以使用asp:textbox的TextChanged事件的吧