我现在有个问题,在一个Form(aspx)文件中加载了一个 ascx 文件,我要我如何用 JavaScript 得到 ascx 文件中的控件。我现在这边有个问题,我想设置 text 回车时响应一个 button 的 Click 方法,代码如下:
txtLoginNo.Attributes.Add("onkeydown", "if(event.keyCode==13){document.all.btnLogin.focus();document.all.btnLogin.click();}")
当 text 与 button 放在 Aspx 件中时,执行没有任何错,当 text 与 button 放在 Ascx 件中时不能执行,请大家帮帮忙!

解决方案 »

  1.   

    .vb
    '按钮和文本
    strEventControlName = btnSelectorlink.UniqueID.Replace(":", "$")
    strtxtSelectorName = txtSelector.UniqueID.Replace(":", "_").aspx
    <script language="javascript">
    function exportData<%=Position%>()
    {
    __doPostBack('<%=strEventControlName%>','');
    }
    </script>
      

  2.   

    当 text 与 button 放在 Aspx 件中时,执行没有任何错,当 text 与 button 放在 Ascx 件中时不能执行,请大家帮帮忙!
      

  3.   

    string script="<script>"
    script=script+"var buttonid="btnLogin.ClientID+";/</script>"
    txtLoginNo.Attributes.Add("onkeydown", "if(event.keyCode==13){mybutton=document.document.getElementsById(buttonid);mybutton.focus();mybutton.click();}")
      

  4.   

    string script="<script>";
    script=script+"var buttonid="btnLogin.ClientID+";/</script>";
    Response.Write(script);txtLoginNo.Attributes.Add("onkeydown", "if(event.keyCode==13){mybutton=document.document.getElementsById(buttonid);mybutton.focus();mybutton.click();}")
      

  5.   

    wanghui0380(放歌) 我还没明白,这段代码放在aspx文件中没有问题(也就是说text和button放在aspx文件中),当代码放在ascx文件中时就有问题(ascx用PlaceHolder加载在aspx文件中)。不知道是什么原因?
      

  6.   

    因为ASCX控件在ASPX控件中加载后,你得JS是在客户端执行,所以控件ID也变成了客户端的控件ID,所以你要获得客户端的控件ID来执行你的JS
      

  7.   

    为什么是document.document.getElementsById?
      

  8.   

    ID号是不一样的
    客户端的规则是
    ASCX名_父控件名(如果有的话)_控件名比如说你的ASCX的标识名是TEST   里面有个控件叫 OBJ
    在客户端输出的时候这个控件的名字就是
    TEST_OBJ
    用document.getElementById("TEST_OBJ")就能找到了你也可以在服务器端用 OBJ.CLIENTID取得他的客户端ID号