加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – Panel visible = true没有任何效果

发布时间:2020-12-16 00:41:54 所属栏目:asp.Net 来源:网络整理
导读:我有一个面板,我明确设置visible = true。调试器通过该行,可见仍然在下一行评估为False。显然,小组没有显示。这怎么可能? pnlValidate.Visible = true;if (IsPostBack) return;asp:Panel ID="pnlValidate" runat="server" asp:Button cssclass="submit2"
我有一个面板,我明确设置visible = true。调试器通过该行,可见仍然在下一行评估为False。显然,小组没有显示。这怎么可能?
pnlValidate.Visible = true;
if (IsPostBack) return;

<asp:Panel ID="pnlValidate" runat="server">
    <asp:Button cssclass="submit2" ID="btnValidate" runat="server" Visible="false" text="Validate" OnClick="btnValidate_Click" /> <br />
    <asp:TextBox ID="txt6sql" runat="server" Visible="false" TextMode="multiLine" Width="500" Height="200" ReadOnly="true" ToolTip="Report SQL Statement" />
</asp:Panel>

alt text http://www.kconnolly.net/pics/visiblefalse.jpg

ASP.NET 2.0,没有其他线程或者是“应该”搞乱我的会员。

解决方法

您的面板是否嵌套在另一个面板或任何其他类型的容器中,Visible设置为false?

对于这种情况,您观察到的行为是可重现的。如果外部容器是不可见的,则禁止将内部容器的可见性设置为true,因为这意味着内部任何内容都不可见,即使不是内部面板的空白div也是有意义的。

Visible属性似乎取决于外部容器的可见性,例如:

<asp:Panel ID="Panel0" runat="server" Visible="false">
    <asp:Panel ID="Panel1" runat="server" Visible="false">
        Content...
    </asp:Panel>
</asp:Panel>

这个代码是如预期的(使外部容器首先可见,然后是内部容器):

Panel0.Visible = true;
// Now Panel0.Visible returns true and Panel1.Visible returns false
Panel1.Visible = true;
// Now Panel0.Visible returns true and Panel1.Visible returns true

这段代码有点令人惊讶(使内部容器首先看到,然后是外部容器):

Panel1.Visible = true;
// Now Panel1.Visible returns false (!,your issue) and Panel0.Visible returns false
Panel0.Visible = true;
// Now Panel1.Visible returns true (!!) and Panel0.Visible returns true

似乎设置和获取Visible属性是“不对称”:Setter似乎在控件中放置一个标志,但是Getter返回一个取决于外部元素的可视性和控件本身的可见性的计算值。

不知道这是否会帮助你。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读