Javascript getElementByID for asp:Image returns null

Javascript getElementByID for asp:Image returns null

本文关键字:Image returns null asp getElementByID for Javascript      更新时间:2023-09-26

我正在尝试在RadCombobox的客户端选择索引更改事件上找到设置为"阻止"或"无"的控件和显示。它返回始终为空。脚本和控件位于"内容的用户控制"页中。此内容页也有母版页。我使用 Debugger 语句调试了代码,但控件具有此标记。"ctl00_content2_ucControl1_imgTest"。如何显示和隐藏图像?请让我知道。感谢您的帮助。我也尝试使用 document.getElementById("<%=imgTest.ClientID");和 $find(("<%=imgTest.ClientID") ; 但这些都不起作用。

<asp:Image ID="imgTest" ImageUrl="../../../images/test.gif" AlternateText="test"
                            runat="server" style="display:none"></asp:Image>
<telerik:RadComboBox ID="Combobox1" runat="server" DataTextField="test1"
                            DataValueField="test_id" NoWrap="true" Width="250" onclientselectedindexchanged="OnClientSelectedIndexChanged">                        </telerik:RadComboBox>

<script type="text/javascript">
function OnClientSelectedIndexChanged(sender, eventArgs) { 
     {
      var item = eventArgs.get_item(); 
          if(item.get_value() == "8") 
             {
            var imageControl = document.getElementById('imgTest');
            imageControl.style.display = "block"; 
            }
        }
</script>

imgTest 是一个服务器控件,因此客户端 ID 将由服务器自动生成。

更改此行:

var imageControl = document.getElementById('imgTest'); 

自:

var imageControl = document.getElementById('<%=imgTest.ClientId%>'); 

您之前尝试的问题是缺少结束标记%>

如果你使用的是 .net 4.0,则可以设置ClientIDMode='Static'然后,只要你不在可重复元素中,你的代码应该可以正常工作。

以下是有关如何使用客户端 ID 的更多信息:http://weblogs.asp.net/asptest/archive/2009/01/06/asp-net-4-0-clientid-overview.aspx