【发布时间】:2010-09-18 21:40:27
【问题描述】:
为 Sharepoint 创建 Web 部件时,是创建一个实际的 Web 部件更好,还是使用 ASP.NET 用户控件 (.ascx) 更好?
我已经知道如何创建我需要的用户控件,因此创建 Web 部件的额外工作似乎只是不必要的工作。
与仅创建和 ASP.NET 用户控件相比,使用 Web 部件有哪些优势?
【问题讨论】:
标签: sharepoint web-parts
为 Sharepoint 创建 Web 部件时,是创建一个实际的 Web 部件更好,还是使用 ASP.NET 用户控件 (.ascx) 更好?
我已经知道如何创建我需要的用户控件,因此创建 Web 部件的额外工作似乎只是不必要的工作。
与仅创建和 ASP.NET 用户控件相比,使用 Web 部件有哪些优势?
【问题讨论】:
标签: sharepoint web-parts
我是用户控件的忠实粉丝,除了最简单的 Web 部件。我创建了一个实例化并加载用户控件的 web 部件。您可以使用其他工具来公开您的用户控件,例如 smartpart,但我建议您自己包装它,因为它是一个很好的学习体验。一旦你完成了一次,你基本上就拥有了一个你想要创建的任何其他 webpart 的模板。
祝你好运!
【讨论】:
必须将一个裸露的 ASP.NET ascx 控件添加到自定义布局页面。这会稍微限制控件的实用性,因为它不能“在任何地方”添加。
拥有一个 webpart 可以灵活地将控件添加到站点的不同位置多次,甚至在具有不同属性的同一页面上多次添加。
如前所述,最好使用CreateChildControls() 在 web 部件中创建控件,并且将 web 部件编码和打包到解决方案中并不是什么大问题,因此值得付出额外的努力。
Webparts 还能够接受来自同一页面上“过滤”Webparts 的连接,与在网站上托管 ascx 控件相比,为 Webparts 提供了更大的灵活性。
对于使用该网站的编辑来说,与编辑页面布局、发布它然后基于该页面布局创建页面相比,他们能够添加 Web 部件有很大不同,所以从角度来看作为一个站点编辑器,可用性上的差异确实很大。
我建议更进一步,对 Web 部件进行编码以使用 xslt 文件来显示内容,并使该 xslt 的位置成为 Web 部件的可配置属性。这真的增加了你的控制的灵活性。
查看 Dataview webpart,了解添加自定义渲染可以完成多少工作。
【讨论】:
LoadChildControls(),你的意思是CreateChildControls(),对吗?