webplayerupdate:SharePoint Web Service系列: Add或Update类型为User的项

  SharePo任务列表中有个字段叫做“分配对象”就是为任务指派给某个用户该字段数据类型是User型在拼Web Service更新命令串时并不能像通常字段样直接给个用户名做为值   有关如何使用SharePo提供WebService进行列表增删改可以参考这里

  下面是该栏相关信息:

内部名 AssignedTo
栏名 分配对象
类型 User
可筛选 TRUE
来源于基础类型 FALSE
隐藏 FALSE
只读 FALSE
可更改域顺序 TRUE
必添字段 FALSE
可排序 TRUE

  有点是肯定那就是定是以方式来传值经过对列表项架构xml分析发现了这个格式为 “UserID;#UserName”

  补充:我最近才发现实际上这里只需要指定“UserID”就可以了而且在做Cmd="New"操作时必须是使用UserID在新增时写成上面格式会返回^_^

  那么只需要在UpdateListItem的前个获取用户信息WebService先得到这些信息就可以顺利实现对包含该类型字段列表项进行更新了

  下面是举例代码在vs2005中调试通过其中引用了两个SharePoWebService.分别是

  Lists Service

  Web引用Url:http://Server_Name/[sites/][Site_Name/]_vti_bin/Lists.asmx

  文件夹名称:LabDb

  Users and Groups Service

  Web引用Url:http://Server_Name/[sites/][Site_Name/]_vti_bin/UserGroup.asmx

  文件夹名称:LabUser

using;
using.Collections.Generic;
using.Text;
using.Xml;
ConsoleTestUpdate
{
  Program
  {
    voidMain(args)
    {
      LabDb.ListslistService=LabDb.Lists;
      LabUser.UserGroupuserService=LabUser.UserGroup;
      userService.Credentials=listService.Credentials=.Net.CredentialCache.DefaultCredentials;
      UserID="";
      UserName="";
      try
      {
        XmlNodendUserInfo=userService.GetUserInfo("labsunmoonfire");
        UserID=ndUserInfo.ChildNodes[0].Attributes["ID"].Value.;
        UserName=ndUserInfo.ChildNodes[0].Attributes["Name"].Value.;
        
      }
      catch{}
      ((UserID!=null&&UserID!="")&&(UserName!=""&&UserName!=null))
      {
        strBatch="<MethodID='1'Cmd='Update'>"+
               "<FieldName='ID'>1</Field>"+
               "<FieldName='AssignedTo'>"+
               UserID+";#"+UserName+"</Field></Method>";
        XmlDocumentxmlDoc=.Xml.XmlDocument;
        .Xml.XmlElementelBatch=xmlDoc.CreateElement("Batch");
        elBatch.SetAttribute("OnError","Continue");
        elBatch.InnerXml=strBatch;
        try
        {
          XmlNodendReturn=listService.UpdateListItems("任务",elBatch);
          //XmlNodendReturn=listService.GetListItems("任务",null,null,null,null,null);   //查看返回列表项结构用于分析串组成
          Console.WriteLine(ndReturn.OuterXml);
   
        }
        catch(Exceptionex)
        {
          Console.WriteLine(ex.Message);
        }
      }
      
      {
        Console.WriteLine("badparameter");
      }
      Console.Read;
    }
  }
}


Tags:  什么是sharepoint sharepoint2007 sharepoint webplayerupdate

延伸阅读

最新评论

发表评论