如果复合服务器控件通常将样式信息封装在其中,则它是代码封装和模块化的示例。但是,如果复合控件中包含css属性,则它不适用于代码/样式分离和css代码重用原则。现在哪个考虑应该是主要考虑因素?
答案 0 :(得分:1)
你看过ASP.NET主题了吗?一种解释:http://msdn.microsoft.com/en-us/library/ykzx33wh(v=VS.100).aspx。虽然不幸的是,我没有机会使用主题,但我知道这是解决这个问题的规范方法。
您可能需要在控件中包含样式信息,以便在没有主题的情况下正确呈现,但主题可以覆盖控件中的样式。
否则,您可以为控件中的任何内容定义类,以便可以使用CSS更轻松地设置样式,但是您在控件中放置的任何默认样式都可以覆盖CSS。如果你真的想沿着这条路走下去,你可能会想出一种机制,将CSS放在标题中,可以被页面中任何其他指定的CSS覆盖。然而,这有点重新发明轮子,因为主题可以照顾这种事情。
答案 1 :(得分:1)
我首先给我的自定义控件一个非常简单,通用的外观 - 可能会保持开箱即用的外观。将CSS样式属性添加到控件中的各个元素,并将它们作为属性公开。也就是说,将CSS规则公开为可以设置的名称/值属性。
如果您的控件依赖于某些基本图像,CSS等,则可以使用嵌入式资源:
您必须考虑重用并使使用该控件的人尽可能简单。