tsi*_*ilb 23 asp.net visibility
我有一个我visible=true明确设置的Panel .调试器通过该行,visible仍然False在下一行评估.显然,小组没有显示.这怎么可能?
pnlValidate.Visible = true;
if (IsPostBack) return;
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)
ASP.NET 2.0,没有其他线程或简单的勘误表"应该"弄乱我的成员.
Sla*_*uma 51
您的面板是否嵌套在另一个面板或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>
Run Code Online (Sandbox Code Playgroud)
此代码符合预期(首先使外部容器可见,然后是内部容器):
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
Run Code Online (Sandbox Code Playgroud)
这段代码有点令人惊讶(首先让内部容器可见,然后是外部容器):
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
Run Code Online (Sandbox Code Playgroud)
似乎设置和获取Visible属性是"非对称的":Setter似乎在控件中放置一个标志,但Getter返回一个计算值,该值取决于外部元素的可见性和控件本身的可见性.
不确定这对你是否有帮助.
| 归档时间: |
|
| 查看次数: |
49890 次 |
| 最近记录: |