程序中需要动态通过JAVASCRIPT调用LinkButton的Text内容,但无论是用alert(document.Form1.all['LinkButton1'].value还是alert(document.Form1.all['LinkButton1'].Text都无法显示,总报undefine,请教:如何如何通过JAVASCRIPT获取LinkButton的Text,程序简化如下:<body MS_POSITIONING="GridLayout" onload="alert(document.Form1.all['LinkButton1'].value);alert(document.Form1.all['Button1'].value);">
<form id="Form1" method="post" runat="server">
<asp:Button id="Button1" style="Z-INDEX: 102; LEFT: 280px; POSITION: absolute; TOP: 136px" runat="server"
Text="Button"></asp:Button>
<asp:Panel id="Panel1" style="Z-INDEX: 104; LEFT: 248px; POSITION: absolute; TOP: 312px" runat="server"
Width="50px">
<asp:LinkButton id="LinkButton1" runat="server" Width="20">LinkB</asp:LinkButton>
</asp:Panel>
</form>
</body>

解决方案 »

  1.   

    你的控件被包含在另外一个容器控件中,直接是不能找到的。
    查看你的源文件,LinkButton的ID应该是类似于 Panel1_LinkButton1 了。
    对于查找容器中的控件,你可以写一方法遍历Form来查找需要的控件:
    function FindLinkButton()
    {
       var form = document.all["Form1"];   for (var i = 0; i < form.element.length; i ++)
       {
         var control = form.element[i];
         
         if (control.id.indexOf("你要找的控件ID") >- 1)
         {
             //control就是你要找的对象
             alert(control.innerText);
          }
       }
    }
      

  2.   

    以上例子 var form = document.all["Form1"]; 中的 “Form2”指你的表单的ID。
    根据实际情况相应替换。