【发布时间】:2023-04-03 10:25:01
【问题描述】:
以这个简单的例子为例:
<asp:Panel ID="pnlTest" runat="server">
<asp:TextBox ID="txPanelText" Text="Text" runat="server" />
</asp:Panel>
现在,在代码隐藏中,执行以下操作:
pnlTest.Enabled = false;
txPanelText.Enabled = true;
为什么禁用面板也会禁用其中的文本框?此外,为什么显式启用文本框没有效果?
这显然与 ASP.NET 框架有关。有什么办法可以避免这种情况吗?
注意:这不是我在应用程序中使用的实际代码。这只是一个示例,展示了禁用控件如何同时递归禁用其中的所有子控件。
【问题讨论】:
-
显然,如果您禁用面板,其中的所有内容都将被禁用 - 这是设计使然。
-
您的标题说如何使用面板禁用控件,但在问题中它说您需要使用禁用的面板启用控件
-
IrishChieftain - 是的,我知道它必须与框架相关,因此我的问题是“有什么办法可以避免这种情况吗?”。 Jayantha - 对。控件会自动被禁用,所以我上面的代码示例说明了我是如何在事后强制启用它们的。
-
我认为如果您描述了 UI 及其作用,将会有所帮助。那么我们也许可以为您提供替代方案。通常,我在设计 UI 时会尽量避免陷入这些情况:)