【发布时间】:2013-08-27 17:55:04
【问题描述】:
在我的 test.aspx 页面上,多个 ascx:panels 出现在不同的 ascx 控件上。我想在运行时通过我有权访问的面板禁用面板。有办法吗?
【问题讨论】:
在我的 test.aspx 页面上,多个 ascx:panels 出现在不同的 ascx 控件上。我想在运行时通过我有权访问的面板禁用面板。有办法吗?
【问题讨论】:
您应该在 ascx 控件中创建一个方法来启用/禁用面板。父级不应访问该面板。 ascx 控件必须处理它。
更新:
您可以创建一个代理属性,将值传递给子控件(Panel1)。此代码放在 ascx 控件中。
public bool PanelVisible
{
get
{
return Panel1.Visible;
}
set
{
Panel1.Visible = value;
}
}
【讨论】:
如果您知道要禁用的面板的 ID,您可以执行以下操作:Panel pnl = this.Page.FindControl(id) as Panel; pnl.Visible = 真/假;
如果面板不是页面的子页面,你可以编写一个递归的 findcontrol 方法。
【讨论】: