【问题标题】:Visible=False on Panel of another ascx controlVisible=False 在另一个 ascx 控件的面板上
【发布时间】:2013-08-27 17:55:04
【问题描述】:

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

【问题讨论】:

    标签: c# asp.net vb.net


    【解决方案1】:

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

    更新:

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

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

    【讨论】:

    • 感谢您的快速答复。可以举个例子吗?
    【解决方案2】:

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

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

    【讨论】:

    • 它可能会工作,但它违反了oop的规则和可重用性。
    猜你喜欢
    • 2016-08-26
    • 1970-01-01
    • 2013-04-07
    • 1970-01-01
    • 1970-01-01
    • 2011-01-01
    • 2014-01-10
    • 2015-06-11
    • 1970-01-01
    相关资源
    最近更新 更多