Sharepoint:Web 部件与 ASP.NET 用户控制

Posted

技术标签:

【中文标题】Sharepoint:Web 部件与 ASP.NET 用户控制【英文标题】:Sharepoint: Web Part vs. ASP.NET User Control 【发布时间】:2010-09-18 21:40:27 【问题描述】:

为 Sharepoint 创建 Web 部件时,是创建一个实际的 Web 部件更好,还是使用 ASP.NET 用户控件 (.ascx) 更好?

我已经知道如何创建我需要的用户控件,因此创建 Web 部件的额外工作似乎只是不必要的工作。

与仅创建和 ASP.NET 用户控件相比,使用 Web 部件有哪些优势?

【问题讨论】:

【参考方案1】:

我是用户控件的忠实粉丝,除了最简单的 Web 部件。我创建了一个实例化并加载用户控件的 web 部件。您可以使用其他工具来公开您的用户控件,例如 smartpart,但我建议您自己包装它,因为它是一个很好的学习体验。一旦你完成了一次,你基本上就拥有了一个你想要创建的任何其他 webpart 的模板。

祝你好运!

【讨论】:

【参考方案2】:

必须将一个裸露的 ASP.NET ascx 控件添加到自定义布局页面。这会稍微限制控件的实用性,因为它不能“在任何地方”添加。

拥有一个 webpart 可以灵活地将控件添加到站点的不同位置多次,甚至在具有不同属性的同一页面上多次添加。

如前所述,最好使用CreateChildControls() 在 web 部件中创建控件,并且将 web 部件编码和打包到解决方案中并不是什么大问题,因此值得付出额外的努力。

Webparts 还能够接受来自同一页面上“过滤”Webparts 的连接,与在网站上托管 ascx 控件相比,为 Webparts 提供了更大的灵活性。

对于使用该网站的编辑来说,与编辑页面布局、发布它然后基于该页面布局创建页面相比,他们能够添加 Web 部件有很大不同,所以从角度来看作为一个站点编辑器,可用性上的差异确实很大。

我建议更进一步,对 Web 部件进行编码以使用 xslt 文件来显示内容,并使该 xslt 的位置成为 Web 部件的可配置属性。这真的增加了你的控制的灵活性。

查看 Dataview webpart,了解添加自定义渲染可以完成多少工作。

【讨论】:

LoadChildControls(),你的意思是CreateChildControls(),对吗?

以上是关于Sharepoint:Web 部件与 ASP.NET 用户控制的主要内容,如果未能解决你的问题,请参考以下文章

sharepoint 2010 如何创建带有树视图的 Web 部件?

Sharepoint 2013 中的 Ajax 连接 Web 部件

Sharepoint 自定义筛选器 Web 部件

SharePoint Online - 内容编辑器 Web 部件 - 机密管理

以编程方式在Sharepoint中实例化Web部件页面

如何在 Sharepoint 中配置 Web 部件的设置?