none
使用SharePoint Web Serivce(3)--Add a new Item with HyperLink and User Type Column RRS feed

  • 常规讨论

  • 前面的两篇,讲了如何创建 修改一个list item.但是在这些item中,我们都只是使用了简单的Text类型的Field,如果我们使用一些相对复杂的Field,改怎么做,例如HyperLink 和User Type的column.

         先讲HyperLink type的Field.如果先前有使用过Object Model去读取一个Hyperlink Type的Field,就会发现,如果用ToString(),就会得到一个"url,description"格式的字符串.所以,这也是我们在XML要用到的格式.

     string strBatch = @"<Method ID='1' Cmd='New'>
                                    <Field Name='Title'>Sample Title</Field>
                                    <Field Name='Url'>http://www.microsoft.com, Microsoft Site</Field>

                                    </Method>";

      使用User Type的Field就稍微麻烦一点.如果你看过Object Model读取的User Field的值,就会发现是一串值就像"ID;#domain\\account....",但是在web service中,没有那么麻烦 只要"ID;domian\\account",所以,我们要先得到ID值,因此我们要用到另外一个Web Service  Usergroup.asmx

     

    UserGroupWebService.UserGroup ugService=new UserGroupWebService.UserGroup();
     
    XmlNode ugNode
    =ugService.GetUserInfo("Server\\LoginName");
                XmlDocument ugdoc 
    = new XmlDocument();
                ugdoc.LoadXml(ugNode.OuterXml);
                XmlNodeList ugList 
    = ugdoc.GetElementsByTagName("User");

                string id = ugList[0].Attributes["ID"].Value;

     

    然后如以下格式:

    <Field Name='User'>ID;#domian\\account</Field>

    2009年6月29日 8:41