所以我正在处理ASP.NET Web Forms
应用程序。我有:
`<asp:Panel ID="MyPanel" runat="server">'
在此面板中,我有其他控件,例如Repeaters
,textboxes
等,并且在(!IsPostBack)
我通过这样做来确定是否显示整个面板的天气:
if (theClient.CType == "1")
{
MyPanel.CssClass == "display-none"
}
display-none
的定义如下:
.display-none {
display: none;
}
然而,在某些情况下,我想再次显示整个面板,因为我在(!IsPostBack)
上设置了中继器和类似的东西,我想要设置所有这些。我不完全确定这些可见性属性是如何工作的,但我需要的是要呈现的HTML
标记,要使用正确的数据初始化的控件,只是将其隐藏在页面上但仍然活跃。
因此,当满足显示面板的条件时,请记住这一点,我这样做:
MyPanel.CssClass = string.Empty;
但是......没有任何反应。我不能完全确定,如果我正确删除了样式,如果这是我应该用于完成我需要的正确CSS
样式。
那我怎么能这样做呢?
答案 0 :(得分:0)
在aspx页面中:
<style type="text/css">
.displayPanel
{
display:block;
}
.hidePanel
{
display:none;
}
</style>
在代码背后:
if (condition)
{
MyPanel.CssClass = "displayPanel";
}
else
{
MyPanel.CssClass = "hidePanel";
}
答案 1 :(得分:0)
请注意,<asp:Panel>
控件会以<div>
呈现给客户端。因此,如果div中没有内容,则不会在客户端上显示。确保所有其他内容(如转发器和文本框等)可见性属性设置为true(默认值),以便在呈现页面时它们就在那里。此外,当您将asp元素可见性设置为false时,它实际上不会在页面上呈现。您将无法通过JavaScript或jQuery等访问这些元素。
如前所述,您可以使用(!IsPostBack)
在服务器上执行任何处理后更改Visible = true / false。你应该真正使用CSS技巧的唯一一次是你需要客户端上的元素来处理一些jQuery或JavaScript。
你试过这个:
if(theClient.CType == "1")
{
MyPanel.Visible == true;
}
当然,您需要将标记更改为:
<asp:Panel ID="MyPanel" runat="server" Visible=false ></asp:Panel>