使用JavaScript更改ASP.NET标签的可见性

Art*_*lho 29 javascript asp.net

我有一个ASP.NET页面,其中包含一个不可见的asp:按钮.我无法用JavaScript将其显示,因为它没有呈现给页面.

我该怎么做才能解决这个问题?

Dav*_*ard 42

如果需要在客户端操作它,则不能在服务器端使用Visible属性.而是将其CSS显示样式设置为"none".例如:

<asp:Label runat="server" id="Label1" style="display: none;" />
Run Code Online (Sandbox Code Playgroud)

然后,您可以在客户端显示它:

document.getElementById('Label1').style.display = 'inherit';
Run Code Online (Sandbox Code Playgroud)

你可以用以下方法再次隐藏它:

document.getElementById('Label1').style.display = 'none';
Run Code Online (Sandbox Code Playgroud)

请记住,在实践中,ClientID可能比"Label1"更复杂.如果它们不同,您需要将ClientID与getElementById一起使用,而不是服务器端ID.


End*_*ssa 10

试试这个.

<asp:Button id="myButton" runat="server" style="display:none" Text="Click Me" />

<script type="text/javascript">
    function ShowButton() {
        var buttonID = '<%= myButton.ClientID %>';
        var button = document.getElementById(buttonID);
        if(button) { button.style.display = 'inherit'; }
    }
</script>
Run Code Online (Sandbox Code Playgroud)

不要使用服务器端代码来执行此操作,因为这需要回发.您可以只设置隐藏按钮的CSS属性,而不是使用Visibility ="false".然后,在javascript中,只要您想再次显示该按钮,就可以切换该属性.

使用ClientID是因为如果按钮位于命名容器控件内,它可能与服务器ID不同.这些包括各种面板.