【问题标题】:Can I create an abstract base class UserControl so derived .ascx must implement certain controls?我可以创建一个抽象基类 UserControl 以便派生的 .ascx 必须实现某些控件吗?
【发布时间】:2018-01-31 11:29:37
【问题描述】:

我的情况是我有一个控件被实现来处理两种不同的类型。因此,在我有if(controlType == "Type1") ... else... 的某些方法中,我想将其拆分为具有基类的两个不同控件,以处理两个控件的通用操作。两个控件也将具有相同的标记,因此我想在基类中处理控件事件,但设计者似乎为我搞砸了。我几乎觉得通用的 .ascx 是完美的,但我不知道从哪里开始。

【问题讨论】:

  • 设计师是怎么搞砸的?

标签: c# asp.net inheritance user-controls


【解决方案1】:

在过去,我尝试过各种有关继承和用户控件的事情,包括一个 ascx 从另一个 ascx 继承,但回想起来认为这是不值得的麻烦,因为它的维护往往有点麻烦头痛。

从一个公共基类继承两个 ascx 控件可以正常工作,但我也发现尝试处理基类中的事件变得很困难。最后,我只是从事件中调用了基类中的方法。您必须处理两个控件中的事件,但至少人们可以在 2 年后遵循代码。

通用 ascx 会很棒而且是可能的:

但是虽然这是一个聪明的解决方法,但由于 EDI 不直接支持它,我怀疑它最终会增加维护问题。

我知道这可能不是您要寻找的答案,但有丑陋的 if(controlType == "Type1") 代码,虽然感觉不优雅,但最终可能是最容易维护的,因为 Visual Studio 本身并不支持用户继承控制。

祝你好运,如果你找到一个优雅的解决方案,请告诉我!

【讨论】:

  • 感谢上面的链接几乎是我浪费了一整天的时间
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-30
  • 1970-01-01
  • 2010-09-21
  • 1970-01-01
  • 2013-08-11
  • 2011-01-31
相关资源
最近更新 更多