另一个ascx控件的面板上的Visible = False

时间:2013-08-24 22:40:34

标签: c# asp.net vb.net

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

2 个答案:

答案 0 :(得分:2)

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

更新

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

    public bool PanelVisible
    {
        get
        {
            return Panel1.Visible;
        }
        set
        {
            Panel1.Visible = value;
        }
    }

答案 1 :(得分:0)

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

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