列表数据可以通过web服务公开,但如何也可以通过web服务公开web部件?

我认为这个问题类似于 https://stackoverflow.com/questions/7115858/sharepoint-2010-web-part-expose-web-service ,区别在于我想通过sharepoint web服务调用公开web部件的内容,这可能吗?

例如 :如果webpart包含图像,请通过sharepoint web服务公开此图像

有帮助吗?

解决方案

我不确定如何通过Web服务完成此操作,如果您甚至可以。但是,您可以使用Ajax与客户端脚本轻松完成。只需在其中获取网页部分,解析内容,并在当前页面中显示您想要的位置。

其他提示

如果只是从同一个域内的可访问页面获取webpart内容,我认为您不需要webservice。

您可以将webpart放在div(id=container)中,并在Jquery下面使用 :

$('#result').load('sitepages/test.aspx #container');

执行此方法时,它将检索 网站/测试。aspx的, ,然后jQuery解析返回的文档,找到ID为container的元素。此元素及其内容被插入到id为result的元素中,检索到的文档的其余部分将被丢弃。

如果您需要访问域外页面上的webpart内容,请使用 contents() 这里提到的jquery功能:

https://stackoverflow.com/questions/1796619/how-to-access-the-content-of-an-iframe-with-jquery

在任何情况下,如果您决心使用webservice,则必须为此编写代码。在webmethod中,您可以通过使用以下方法解析页面并返回所需的html部分的内容 HTMLAgilityPack的

Web部件用于显示内容,而不是为其他组件提供内容存储库。一些选择:

  1. 也许你根本不需要一个web部件,只需创建一个列表并将映像存储在那里。

  2. 也许你也需要一个web部分。创建列表,将映像存储在那里,并引用来自Web部件的图像。然后,其他组件也可以引用相同的列表。

  3. 也许有多个图像可用,但Web部件正在执行一些逻辑以确定要显示的“活动”图像。在这种情况下,a)将此逻辑移动到自定义Web服务,并从Web部件以及其他组件调用同一Web服务,或者B)具有Web部分还更新具有名称/路径的自定义列表当前的“活动”图像。其他组件可以读取自定义列表以获取图像。 (我喜欢自定义Web服务的想法从架构的基础上更好地,但在SharePoint中设置有一个更困难的东西。有一个自定义列表,Web部件更新似乎不如清洁,但会更容易设置。)

许可以下: CC-BY-SA归因
scroll top