【问题标题】:how to disable controls of master page used in content page while processing some event in asp.net如何在asp.net中处理某些事件时禁用内容页面中使用的母版页控件
【发布时间】:2011-03-07 15:53:34
【问题描述】:

以下代码可以很好地禁用内容页面控件,但是如何禁用母版页控件?

public void DisableControls(Control control,bool isEnable)
{
    if (control.HasControls())
    {
        foreach (Control c in control.Controls)
        {
            DisableControls(c, isEnable);
        }
    }
    else
    {
        if (control is IPostBackDataHandler && !(control is IPostBackEventHandler))
        {
            if (control is WebControl)
            {
                ((WebControl)control).Enabled = isEnable;
            }
            else if (control is HtmlControl)
            {
                ((HtmlControl)control).Disabled = !isEnable;
            }
        }
    }
}

【问题讨论】:

  • 你努力把这些都打出来,但又懒得回复?
  • @Pierreten,这是不必要的。让他有机会在你制作这些 cmets 之前测试和查看答案。
  • @GenericTypeTea - 此人已成为会员 9 个月,并提出了 21 个问题。我认为有足够的时间来测试和审查他们的答案。
  • 我的语法确实很草率;但我的观点是,提问者应该真正考虑将问题标记为已回答。但是 Generic 认为这些 cmets 是噪音是正确的;一遍又一遍。

标签: asp.net master-pages


【解决方案1】:

如果您想禁用母版页上的所有控件,只需执行以下操作:

DisableControls(this.Page.Master, isEnable);

或者,如果您想在特定的 MasterPage 控件上执行该方法:

DisableControls(this.Page.Master.FindControl("Panel1"), isEnable);

更新:

你为什么不在你的 MasterPage 上放一个方法:

public void SetControlEnabledState(bool enabled)
{
   DisableControls(Menu1, enabled);
   DisableControls(Control2, enabled);
}

然后,要访问它,只需从使用母版页的任何页面执行以下操作:

((MasterPageName)this.Page.Master).SetControlEnabledState(enabled);

【讨论】:

  • @ush - 只是说“工作不正常”是没有帮助的。有什么不好的?有什么错误?你试过什么代码?
  • 我必须禁用母版页中的菜单控制,所以我使用了 //DisableControls(this.Page.Master.FindControl ("Menu1") ,false );//
  • 如果this.Page.Master.FindControl ("Menu1") 正确返回您的控件,您是否尝试过?
  • 嗯,最常见的问题是“Menu1”不是正确的 id。检查母版页中的Menu1.ClientID。此外,ASP.Net 4.0 允许您管理 ClientID。您的问题的其他选项是菜单不直接包含在母版页中,而是包含在 MasterPage 的另一个控件中。
  • 非常感谢以下所有代码对我来说工作正常 Menu mpLabel = (Menu)Master.FindControl("Menu1"); ((WebControl)mpLabel).Enabled = false;
【解决方案2】:

最好的方法是从您的内容页面中抛出您的自定义事件,然后在母版页中处理它。这样可以使您的母版页独立于您的内容页。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-06
    • 2014-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多