2

我试图在 RadCombobox 的 onclientselectedindexchanged 事件上找到控件和显示设置为“阻止”或“无”。它始终返回 null。脚本和控件位于“内容的用户控制”页面中。此内容页面也有母版页。我用 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>
4

2 回答 2

2

imgTest 是一个服务器控件,所以客户端 id 将由服务器自动生成。

更改此行:

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

到:

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

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

于 2012-05-28T15:09:30.377 回答
1

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

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

于 2012-05-28T16:40:45.843 回答