如何使用sharepoint Web服务创建XML Web部件?

时间:2010-04-19 07:43:03

标签: sharepoint moss wss wss-3.0

我有一个使用XSL文件在sharepoint中呈现的XML。我现在使用sharepoint的对象模型如何做到这一点但不知道如何使用sharepoint web服务来做到这一点。

即。我想使用sharepoint Web服务创建XML Web部件。

是否可以使用sharepoint Web服务创建XML Web部件?如果是,怎么样?

1 个答案:

答案 0 :(得分:0)

发现自己该怎么做。 : - )

AddWebPart网络服务的WebPartPages方法是唯一可用于添加网页部件并将其添加到网页的方法。

您只需要正确准备Xml,这需要作为参数传递给methosd。此XML确定WebPart的类型及其属性。

对于Xml WebPArt,我使用了以下Xml:

<WebPart xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/WebPart/v2">
          <Assembly>Microsoft.SharePoint, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Assembly>
          <TypeName>Microsoft.SharePoint.WebPartPages.XmlWebPart</TypeName>
          <FrameType>None</FrameType>
          <Title>XML Web Part</Title>
          <XMLLink xmlns="http://schemas.microsoft.com/WebPart/v2/Xml">http://RootSite/sites/XYZ/Documents/ABC.xml</XMLLink>
          <XML xmlns="http://schemas.microsoft.com/WebPart/v2/Xml" />
          <XSLLink xmlns="http://schemas.microsoft.com/WebPart/v2/Xml">http://RootSite/sites/XYZ/Documents/ABC.xsl</XSLLink>
          <XSL xmlns="http://schemas.microsoft.com/WebPart/v2/Xml" />
          <PartStorage xmlns="http://schemas.microsoft.com/WebPart/v2/Xml" />
</WebPart>

并将此Xml字符串传递给AddWebPart方法:

public static Guid WebPartPagesAddWebPart(string PageUrl, string WebPartXml, uint Storage)
        {
            // proxy object to call the Versions web service
            WebPartPages.WebPartPagesWebService WebPartPagesWebService = new WebPartPages.WebPartPagesWebService();

            // the user credentials to use
            WebPartPagesWebService.Credentials = new NetworkCredential(UserName, Password, Domain);
            WebPartPagesWebService.Url = sharePointHost + WebPartPagesServiceName;

            // add the new web part to the page
            Guid Result = WebPartPagesWebService.AddWebPart(PageUrl, WebPartXml, (WebPartPages.Storage)Storage);

            // dispose the web service object
            WebPartPagesWebService.Dispose();
            return Result;
        }

MSDN帮助仅为ContentEditor Web部件提供了示例。我搜索了一下并修改了Xml web部分。 :)