环境:Visual Studio 2008 
语言:C# 
程序:ASP.NET 当.net控件TextBox1失去焦点时,假设事先并不知道此控件的ID. 
我想在页面前台HTML环境中,得到.net控件TextBox1的ID,请问代码该如何编写????

解决方案 »

  1.   

    onblur("showName(this)")调用JS函数
    再在JS函数里面取.
      

  2.   

    protected   void   Button1_Click(object   sender,   EventArgs   e) 
            { 
                    Button1.Text   =   ((Button)sender).ID.ToString(); 
            } 
    Button1.Text就得到了Button1,即控件的ID<script   language= "javascript "> 
    function   mouseClick() 

    var   e   =   window.event.srcElement; 
    alert(e.id); 
                      //你可以这样   用JS取得ID后   放在一个服务器控件上   后台就能读取了 
                      //document.getElementById( "TextBox1 ").value   =   e.id } 
    document.onclick   =   mouseClick 
    </script>
      

  3.   

    楼主陈述问题极其不明白,什么叫实现不知道TextBox1的ID?你TextBox1是怎么来的?
    是不是TextBox嵌套在服务器控件里面的?然后生成页面的时候ID变了?
    那就用下面这个。
                 var tbUserName = document.getElementById('<%=tbUserName.ClientID%>');
    一般的就用用这个。当.net控件TextBox1失去焦点时,假设事先并不知道此控件的ID. 
    我想在页面前台HTML环境中,得到.net控件TextBox1的ID,请问代码该如何编写????
    语句极不通顺,是不是想失去焦点的时候获取ID。不就是那种注册的时候失去焦点用AJAX去判断用户名是否注册过。
                                <asp:TextBox ID="tbUserName" runat="server" onblur="checkUserName()" 
                                    MaxLength="20" BorderColor="Black" BorderWidth="1px"></asp:TextBox>
             function checkUserName()
             {
                 // Check whether there's text in tbUserName
                 var tbUserName = document.getElementById('tbUserName');
                 var checkResult = document.getElementById("checkResult");
                 checkResult.innerHTML = "<img src='images/Web/ajax.gif' />"
                 var b = document.getElementById("Button_Regist"); 
                 if (tbUserName.value == "")
                 {
                     b.disabled = true;   
                     checkResult.innerHTML = "请输入账号";
                     return;
                 }
                 else if (tbUserName.value.length < 3 && tbUserName.value.length > 0)
                 {
                     b.disabled = true;   
                     checkResult = document.getElementById("checkResult");
                     checkResult.innerHTML = "你输入的账号长度太短!";
                     return;
                 }
                 b.disabled = false;             // Create XMLHttpRequest object
                 try
                 {
                     xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
                 }
                 catch (e)
                 {
                     try
                     {
                         xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                     }
                     catch (e2)
                     {
                         xmlHttp = false;
                     }
                 }             if (!xmlHttp && typeof XMLHttpRequest != 'undefined')
                 {
                     xmlHttp = new XMLHttpRequest();
                 }
                 // Build the URL to connect to
                 var url = "./AJAX/CheckUserNameService.aspx?User_Name=" + tbUserName.value;             // Open a connection to the server
                 xmlHttp.open("GET", url, true);             // Setup a function for the server to run when it's done
                 xmlHttp.onreadystatechange = callBack_CheckUserName;             // Send the request
                 xmlHttp.send(null);         }         function callBack_CheckUserName()
             {
                 if (xmlHttp.readyState == 4)
                 {
                     var message;
                     var isValid = xmlHttp.responseText;
                     var checkResult = document.getElementById("checkResult");
                     if (isValid == "true")
                     {
                         message = "<img src='images/Web/checked.png' />";
                     }
                     else
                     {
                         message = "该账号已经注册过,请重新输入新的账号。";
                     }
                     checkResult.innerHTML = message;
                 }
             }