【问题标题】:UserControl inheriting from another UserControlUserControl 继承自另一个 UserControl
【发布时间】:2009-07-22 18:34:59
【问题描述】:

我有一个提供某些功能(加载和显示客户端信息)的 UserControl,我想扩展该 UserControl。有些表单需要普通的旧 UserControl,而其他表单则需要一些额外的字段。如何从现有的 UserControl 继承,维护现有字段但同时添加新字段?

我喜欢 MasterPages 的工作方式,您可以在其中定义占位符,然后内容页面只是用额外的内容填充这些占位符。这可能与 UserControls 吗?谢谢!

【问题讨论】:

    标签: asp.net user-controls


    【解决方案1】:

    也许您可以在您的 UserControl 中定义一些 ASP:PlaceHolders(将其视为“区域”),并通过公共(如果您只希望继承的类能够更改它们,则为受保护)属性使它们可用。这样您就可以在需要时向它们添加子控件。

    protected PlaceHolder TopZone {
       get { return plhTop; }
    }
    
    
    protected PlaceHolder BottomZone {
       get { return plhBottom; }
    }
    

    从继承的用户控件之一:

    Label lblTest = new Label { Text = "Hello World!" };
    TopZone.Controls.Add(lblTest);
    

    这是一个非常基础的例子,希望对你有用。

    【讨论】:

    • 这与我现在使用的方法非常相似,但它没有提供与 MasterPages 相同级别的功能,并且很难维护。 :(
    • UserControl 本身就是一个控件(容器),您可以简单地向其中添加控件。但也许现在你有点失去了使用 UserControl 的意义。
    【解决方案2】:

    我最终使用嵌套的 MasterPages 作为我的 UserControls(因为它们仍然继承自 UserControl)。然后我只需调用 this.LoadControl("~/mp.master") 瞧,我已经嵌套了具有完整设计时支持的 UserControl。 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-27
      • 2014-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-01
      相关资源
      最近更新 更多