gpt4 book ai didi

asp.net - 面板可见=真无效

转载 作者:行者123 更新时间:2023-12-03 10:50:38 26 4
gpt4 key购买 nike

我有一个正在设置的面板 visible=true明确地。调试器通过该行和 visible仍然评估为 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>

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 返回一个计算值,该值取决于外部元素的可见性和控件本身的可见性。

不确定这是否会对您有所帮助。

关于asp.net - 面板可见=真无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2539204/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com