ASP.NET自定义控件 - 复合材料

Rob*_*per 19 .net c# asp.net user-controls controls

摘要

大家好,
好的,进一步了解我的自定义控件冒险......

总之,这是我已经了解了自定义控件的三个主要"类".如果有任何错误,请随时纠正我!

  1. UserControls - 继承自UserControl并包含在ASCX文件中.这些在他们能做的事情上非常有限,但是通过设计师支持获得一些UI通用性是一种快速而轻松的方式.
  2. 自定义复合控件 - 这些是从WebControl继承的控件,您可以在CreateChildControls方法中向控件添加预先存在的控件.这提供了极大的灵活性,但缺乏设计师支持而无需额外编码.它们是高度可移植的,因为它们可以编译成DLL.
  3. 自定义渲染控件 - 与自定义复合控件类似,这些控件将添加到Web控件库项目中.控制器的渲染完全由程序员通过重写Render方法来控制.

我的想法..

好的,所以在玩自定义复合材料时,我发现了以下内容:

  • 您很少/无法控制HTML输出,因此难以"调试".
  • 的CreateChildControls(以及随后的方法)可以得到真正的忙Controls.Add被(myControl)无处不在.
  • 我发现渲染表(无论是布局还是内容)都非常笨拙.

问题..

所以,我承认,我是新手,所以我可能会偏离上面提到的一些观点.

  • 你使用复合材料吗?
  • 你有任何巧妙的技巧来控制HTML输出吗?
  • 你只是说"地狱般的"并继续创建自定义渲染控件吗?

因为我知道有多少好的控制开发可以缩短整体开发时间,所以我很想在脑子里真正坚定.

我期待你的回答^ _ ^

Jon*_*jap 5

我说继续使用自定义渲染控件.我发现在大多数情况下,复合可以更容易地完成并在UserControl中使用,但除此之外的任何东西,你需要有一个更好的控制程度(双关语),值得你自己的渲染策略.

可能有一些控件非常简单,值得一个复合(例如,一个文本框与基于javascript/dhtml的日期选择器相结合),但除了这个例子之外,它看起来像是自定义渲染控件.