none
母版页面自定义控件内服务器端控件在js里如何引用??? RRS feed

  • 问题

  •  

    Code Snippet

    ctl00$ContentPlaceHolder1$so1$tname

     

     

    以上是控件tname解析过以后的ID,我在js里该如何引用呢?
    2008年6月5日 17:45

答案

  • window是客户端HTML DOM里面的,你稿 Web开发,要明白哪些代码是属于客户端的代码,哪些是属于服务器端的代码

     

    不一定非得使用window.onload。只要放在对象的后面执行就可以了

    例子(母版页也是一样

    Code Snippet

    <!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>
        <script type="text/javascript">
        var jsID = "<%=TextBox1.ClientID %>";

    //如果在下面这行位置调用,则会出错,控件还没生成

     //   alert("come from window.onload " + document.getElementById(jsID).value)

        window.onload = function()
        {
         alert("come from window.onload " + document.getElementById(jsID).value)
         document.getElementById(jsID).value = "new newnew newnew newnew new"
        }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
       
          <asp:TextBox ID="TextBox1" runat="server">测试</asp:TextBox>
       
        </div>
        <script type="text/javascript"> 
         alert("come from behind textbox1 " + document.getElementById(jsID).value)
        </script>
        </form>
    </body>
    </html>

     

     


    2008年6月6日 6:30
    版主

全部回复

  • Code Snippet

     

    var jsID = "<%=服务器控件.ClientID%>"

     

    引用

     

    document.getElementById(jsID)

     

     

     

    2008年6月6日 0:43
    版主
  •  

    不行啊,我一改就找不到人了
    2008年6月6日 1:41
  •  

    应该可以的,这是常用的方法,也是最简便的,找不到是你没用好地方。

     

    js对象调用要放在对象呈现完毕之后。通常放在window.load或者页面最后

    2008年6月6日 3:06
    版主
  • 一定要是window.load吗?window是哪一级的?我好像没有在.net里见过这个词啊。

    我只见过page.load,me.load。

     

    我把引用的js文件以及onchange函数放到母版页的最后了

    2008年6月6日 3:17
  • 可以在apsx里直接设置一个id, js就可能通过这个id来获取客户端生成的控件来交互

    2008年6月6日 3:57
  • window是客户端HTML DOM里面的,你稿 Web开发,要明白哪些代码是属于客户端的代码,哪些是属于服务器端的代码

     

    不一定非得使用window.onload。只要放在对象的后面执行就可以了

    例子(母版页也是一样

    Code Snippet

    <!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>
        <script type="text/javascript">
        var jsID = "<%=TextBox1.ClientID %>";

    //如果在下面这行位置调用,则会出错,控件还没生成

     //   alert("come from window.onload " + document.getElementById(jsID).value)

        window.onload = function()
        {
         alert("come from window.onload " + document.getElementById(jsID).value)
         document.getElementById(jsID).value = "new newnew newnew newnew new"
        }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
       
          <asp:TextBox ID="TextBox1" runat="server">测试</asp:TextBox>
       
        </div>
        <script type="text/javascript"> 
         alert("come from behind textbox1 " + document.getElementById(jsID).value)
        </script>
        </form>
    </body>
    </html>

     

     


    2008年6月6日 6:30
    版主
  •  孟宪会 写:

    window是客户端HTML DOM里面的,你稿 Web开发,要明白哪些代码是属于客户端的代码,哪些是属于服务器端的代码

     

    不一定非得使用window.onload。只要放在对象的后面执行就可以了

    例子(母版页也是一样

    Code Snippet

    <!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>
        <script type="text/javascript">
        var jsID = "<%=TextBox1.ClientID %>";

    //如果在下面这行位置调用,则会出错,控件还没生成

     //   alert("come from window.onload " + document.getElementById(jsID).value)

        window.onload = function()
        {
         alert("come from window.onload " + document.getElementById(jsID).value)
         document.getElementById(jsID).value = "new newnew newnew newnew new"
        }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
       
          <asp:TextBox ID="TextBox1" runat="server">测试</asp:TextBox>
       
        </div>
        <script type="text/javascript"> 
         alert("come from behind textbox1 " + document.getElementById(jsID).value)
        </script>
        </form>
    </body>
    </html>

     

     


     

     

    谢谢!

    关于你说的这个,我明白了!

    2008年6月10日 2:39