我为 Sharepoint 构建了一个 Web 部件,用于从外部服务检索数据。我想以与 Sharepoint UI 兼容的方式显示项目(适合其周围环境。)

我知道“DataFormWebPart”,但无法使其正常工作。它需要一个有效的数据源,但我无法根据 Web 服务调用的结果构建一个数据源......部分问题是我的 Web 服务包装器没有公开 XML 返回信息,而是有一堆反序列化的对象。似乎没有一种简单的方法可以将实际对象转换为数据源,或从对象数据填充“通用”数据源。

我可以使用 SPGridView 来获得相同的 UI,但网格控件没有太多智能 - 而且 - 它强制每个字段进入其自己的列。我更喜欢将每个列表项呈现为具有复杂渲染的单个单元格(例如 StackOverflow 显示其问题列表的方式)。我还希望获得尽可能多的 Sharepoint 标准 UI,例如排序、过滤和分页控件。

所以,首先:这里是否有人编写了执行此操作的 Sharepoint 控件,如果是,您是否有示例代码可以分享?如果不:我是否忽略了一些有用的控件,无论是 MS 提供的还是外部库中提供的控件?

谢谢!史蒂夫

有帮助吗?

解决方案

分享点:使用“兼容” UI显示非sharepoint内容列表的最佳方法?

看一下内置的 sharepoint Web 控件:

Microsoft.SharePoint.WebControls 命名空间

它包含 sharepoint 中使用的所有控件。我会告诉你更多,但文档非常详尽。

其他提示

SharePoint 的问题在于有很多不同的方法可以做到这一点。如果您的数据变化不是太频繁,也不是太大,那么可能值得考虑将其输入列表中进行显示。如果您拥有企业许可证,则可能值得将您的数据放入 BDC 并在那里使用。您可能必须将对象转换为 xml 或将序列化对象与 XML Web 部件一起使用才能显示。这仍然存在使用 XSLT 自定义呈现的问题。

这是一篇很棒的文章,介绍了如何使用 BDC 定义编辑器配置 BDC 与 Web 服务的连接:

使用业务数据目录定义编辑器创建 Web 服务连接 http://msdn.microsoft.com/en-us/library/bb737887.aspx

在我看来,执行此操作的最佳方法是制作一个 Web 部件。作为 Web 部件,UI 将自动呈现为与网站正在使用的主题相同(除非您覆盖它),并且具有管理员权限的任何人都可以将其放置在任何位置。

您可以创建自定义 Web 部件并使用 SPGridView。你说你不喜欢它,因为它迫使每个领域都有自己的栏目,但事实并非如此。您可以为每个列创建一个模板 (ITemplate),并完全自定义其中显示的内容,就像使用普通的 ASP.Net GridView 一样。使用这种方法,我在列表项标题旁边添加了一些“新”小图像,就像 SharePoint 本身一样。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top