取消隐藏一个<;asp:面板>;使用javascript
我有一个取消隐藏一个<;asp:面板>;使用javascript,javascript,c#,asp.net,Javascript,C#,Asp.net,我有一个隐藏在css显示中:无并且我希望在出现错误时显示面板。在javascript中将样式设置为'block'无效 document.getElementById('<%= UxErrorPanel.ClientID %>').style.display = 'block'; document.getElementById(“”).style.display='block'; 函数HidePanel(){ document.getElementBy
隐藏在css显示中:无代码>并且我希望在出现错误时显示面板。在javascript中将样式设置为'block'
无效
document.getElementById('<%= UxErrorPanel.ClientID %>').style.display = 'block';
document.getElementById(“”).style.display='block';
函数HidePanel(){
document.getElementById(“”).style.display='block';
}
很快就会被隐藏起来。
这是我在玩儿。但是我认为您可以使用这个HTML/JS并获得自己的解决方案
编辑:要使用更改添加更多上下文。。。CSS类通过visibility属性而不是display隐藏元素时也遇到过类似的问题,这就是我在面板上设置style=“display:none;”“
的原因。请注意,IntelliSense可能会试图告诉您这不是一个可以设置的属性,但请忽略它。ASP控件有时会让人头疼
如果您使用的是jQuery,那么只需使用.toggle()
或<代码>fadeToggle()
获取一些额外动画
函数HidePanel(){
document.getElementById(“”).style.display='block';
}
很快就会被隐藏起来。
这是我在玩儿。但是我认为您可以使用这个HTML/JS并获得自己的解决方案
编辑:要使用更改添加更多上下文。。。CSS类通过visibility属性而不是display隐藏元素时也遇到过类似的问题,这就是我在面板上设置style=“display:none;”“
的原因。请注意,IntelliSense可能会试图告诉您这不是一个可以设置的属性,但请忽略它。ASP控件有时会让人头疼
如果您使用的是jQuery,那么只需使用
.toggle()
或<代码>fadeToggle()获取一些额外动画 浏览器控制台中有错误吗?您是否检查了呈现的HTML和JS(使用浏览器的Inspect或View源代码工具)以检查面板的ID和JavaScript中的ID是否匹配?(面板将呈现为
,因此这就是您在HTML中查找的内容。)此JavaScript显示在您的页面中的何处?按照上面编写的方式,它将在浏览器中呈现脚本块后立即执行。因此,如果脚本块早于页面中的面板,它将在面板存在之前执行,因此找不到任何要更新的内容。这可能也是由于面板上的隐藏类造成的。请尝试删除该类。@ChrisBarr我假设该类正在添加display:none
属性。它当然不是内联添加的。但是OP可以使用元素检查器来确定应用了什么规则,以及从何处开始。但是是的,也许使用JS来切换那个类会更有意义,而不是直接设置style属性。。。我相信asp面板将添加内嵌样式来隐藏/显示它们,然后手动添加任何CSS类。我们实际上对CSS样式表一无所知,所以我们只能猜测。依我看,如果你只想用JS隐藏/显示一个div,只需要使用纯HTML而不是像这样使用服务器端控件。你的浏览器控制台中有错误吗?您是否检查了呈现的HTML和JS(使用浏览器的Inspect或View源代码工具)以检查面板的ID和JavaScript中的ID是否匹配?(面板将呈现为
,因此这就是您在HTML中查找的内容。)此JavaScript显示在您的页面中的何处?按照上面编写的方式,它将在浏览器中呈现脚本块后立即执行。因此,如果脚本块早于页面中的面板,它将在面板存在之前执行,因此找不到任何要更新的内容。这可能也是由于面板上的隐藏类造成的。请尝试删除该类。@ChrisBarr我假设该类正在添加display:none
属性。它当然不是内联添加的。但是OP可以使用元素检查器来确定应用了什么规则,以及从何处开始。但是是的,也许使用JS来切换那个类会更有意义,而不是直接设置style属性。。。我相信asp面板将添加内嵌样式来隐藏/显示它们,然后手动添加任何CSS类。我们实际上对CSS样式表一无所知,所以我们只能猜测。依我看,如果你只想用JS隐藏/显示一个div,只需使用纯HTML,而不是像这样使用服务器端控件。@TylerRoper也许你应该阅读他最初提出的问题。他无法通过JS隐藏面板。我给他贴了一份解决方案。这不难理解。@TylerRoper也许你应该读一下他问的最初的问题。他无法通过JS隐藏面板。我给他贴了一份解决方案。这不难理解。
<asp:Panel CssClass="alert alert-danger hidden" ID="UxErrorPanel" runat="server">
<asp:Label runat="server" ID="UxLabelErrorHeader" Text="Unable to connect to the Stripe payment provider"></asp:Label>
<br />
<asp:Label runat="server" ID="UxLabelErrorMessage"></asp:Label>
</asp:Panel>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
function HidePanel() {
document.getElementById('<%= pnlMain.ClientID %>').style.display = 'block';
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="btnPushMe" runat="server" OnClientClick="HidePanel(); return false;" Text="Push Me" />
<asp:Panel ID="pnlMain" runat="server" style="display: none;">
<label>Going to be hidden, soon.</label>
</asp:Panel>
</div>
</form>
</body>
</html>