0

在我的 test.aspx 页面上,不同的 ascx 控件上出现了多个 asp:panels。我想在运行时通过我有权访问的面板禁用面板。有没有办法这样做?

4

2 回答 2

2

您应该在 ascx 控件中创建一个方法来启用/禁用面板。父级不应访问该面板。ascx 控件必须处理它。

更新:

您可以创建一个代理属性,将值传递给子控件(Panel1)。此代码放置在 ascx 控件中。

    public bool PanelVisible
    {
        get
        {
            return Panel1.Visible;
        }
        set
        {
            Panel1.Visible = value;
        }
    }
于 2013-08-24T22:51:52.590 回答
0

如果您知道要禁用的面板的 ID,您可以执行以下操作: Panel pnl = this.Page.FindControl(id) as Panel; pnl.Visible = 真/假;

如果面板不是页面的子页面可以编写递归的 findcontrol 方法。

于 2013-08-24T23:12:02.457 回答