2010-04-19 82 views
0

我有一个XML使用XSL文件在Sharepoint中呈现。我现在如何使用SharePoint的对象模型来做到这一点,但不知道如何使用SharePoint Web服务来做到这一点。如何使用Sharepoint Web服务创建XML Webparts?

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

是否有可能使用Sharepoint Web服务创建XML Web部件?如果是,如何?

+0

我认为你应该更精确,并告诉我们你想做什么。 – Flo 2010-04-19 08:19:53

+0

@Flo:thanks ... edited .. – Manish 2010-04-19 09:50:23

回答

0

找到了我自己该怎么做。 :-)

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

您只需要准备好需要传递给methosd作为参数的Xml。该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部件。 :)