我为Sharepoint构建了一个Web部件,用于从外部服务检索数据。我希望以与Sharepoint兼容的UI方式显示项目(适合其周围环境。)
我知道“DataFormWebPart”但无法正常工作。它需要一个有效的DataSource,我无法从Web服务调用的结果中构建一个...部分问题是我的Web服务包装器不公开XML返回信息,而是我有一堆反序列化的对象。似乎没有简单的方法将实际对象转换为数据源,或者从对象数据填充“通用”数据源。
我可以使用SPGridView来获取相同的UI,但网格控件并没有太多的智能 - 并且它会强制每个字段进入自己的列。我更喜欢将每个列表项渲染为具有复杂渲染的单个单元格(例如,StackOverflow显示其问题列表的方式。)我还希望获得尽可能多的Sharepoint标准UI,例如排序,过滤和分页控件。
所以,首先:有没有人在这里编写了一个Sharepoint控件来执行此操作,如果有,您是否有示例代码可以共享?如果不是:我是否忽略了一些有用的控制,无论是MS提供还是在外部库中都可用?
谢谢! 史蒂夫
答案 0 :(得分:2)
Sharepoint:显示列表的最佳方式 非Sharepoint内容的 “兼容”UI?
查看内置的sharepoint Web控件:
Microsoft.SharePoint.WebControls Namespace
它包含sharepoint中使用的所有控件。我会告诉你更多,但文档非常详尽。
答案 1 :(得分:0)
SharePoint的问题在于有很多不同的方法可以做到这一点。如果您的数据没有经常更改且不会过大,则可能值得考虑将其输入列表进行显示。 如果您拥有Enterprise许可证,则可能值得将您的数据导入BDC并在那里使用它。 您可能必须将对象转换为xml或使用XML webpart的序列化对象进行显示。这仍然存在使用XSLT进行自定义渲染的问题。
答案 2 :(得分:0)
这是一篇很棒的文章,解释了如何使用BDC定义编辑器配置与Web服务的BDC连接:
使用业务数据目录定义编辑器创建Web服务连接 http://msdn.microsoft.com/en-us/library/bb737887.aspx
答案 3 :(得分:0)
执行此操作的最佳方法是创建Web部件。作为Web部件,UI将自动呈现为与网站使用的主题相同(除非您覆盖它),并且任何具有管理员权限的人都可以将其放置在任何位置。
答案 4 :(得分:0)
您可以创建自定义Web部件并使用SPGridView。你说你不喜欢它,因为它会强迫每个字段进入它自己的列,但事实并非如此。您可以为每个列创建一个模板(ITemplate),并完全自定义其中显示的内容,就像使用普通的ASP.Net GridView一样。使用这种方法,我在列表项的标题旁边添加了一些小“新”图像,就像SharePoint本身一样。