2010-11-19 21 views
1

私はリスト名とアイテム名のテキストファイルを持っています。私はその名前でアイテムのGUIDを取得する必要があります。どうやって? (splistのforeach splistitem項目を使用していないため、テキストファイルが大きく、ループが有料になります)リストアイテムのGUIDを取得

+0

各項目を検索するには、ある種のループを使用する必要があります。「項目名」に関する詳細情報を含めることができますか?これらの文書はありますか?リストアイテム? 「アイテム名」はSharePointのどの列にマップされますか? –

答えて

0

SPWeb関数GetListItemを使用するのに十分な情報がある場合は、SPWeb.SearchListItemsを試す必要があります。どちらも速くないでしょう。

Webサービスは、私がそのように使用しているまともな検索機能があります。

public static string GetPageId(string listName, string webPath, string pageTitle) 
     { 
      string pageId = ""; 
      IntranetLists.Lists lists = new IntranetLists.Lists(); 
      lists.UseDefaultCredentials = true; 
      lists.Url = webPath + "/_vti_bin/lists.asmx"; 
      XmlDocument doc = new XmlDocument(); 
      doc.LoadXml("<Document><Query><Where><Contains><FieldRef Name=\"Title\" /><Value Type=\"Text\">" + pageTitle + "</Value></Contains></Where></Query><ViewFields /><QueryOptions /></Document>"); 
      XmlNode listQuery = doc.SelectSingleNode("//Query"); 
      XmlNode listViewFields = doc.SelectSingleNode("//ViewFields"); 
      XmlNode listQueryOptions = doc.SelectSingleNode("//QueryOptions"); 

      Guid g = GetWebID(webPath); 

      XmlNode items = lists.GetListItems(listName, string.Empty, listQuery, listViewFields, string.Empty, listQueryOptions, g.ToString()); 
      foreach (XmlNode listItem in SPCollection.XpathQuery(items, "//sp:listitems/rs:data/z:row")) 
      { 
       XmlAttribute id = listItem.Attributes["ows_Id"]; 
       if (id != null) 
       { 
        pageId = id.Value;      
       } 

      } 
      return pageId;    
     } 

public static XmlNodeList XpathQuery(XmlNode xmlToQuery, string xPathQuery) 
    { 
     XmlDocument doc = new XmlDocument(); 
     doc.LoadXml(xmlToQuery.OuterXml); 
     XmlNamespaceManager mg = new XmlNamespaceManager(doc.NameTable); 
     mg.AddNamespace("sp", "http://schemas.microsoft.com/sharepoint/soap/"); 
     mg.AddNamespace("z", "#RowsetSchema");         
     mg.AddNamespace("rs", "urn:schemas-microsoft-com:rowset"); 
     mg.AddNamespace("y", "http://schemas.microsoft.com/sharepoint/soap/ois"); 
     mg.AddNamespace("w", "http://schemas.microsoft.com/WebPart/v2"); 
     mg.AddNamespace("d", "http://schemas.microsoft.com/sharepoint/soap/directory"); 
     return doc.SelectNodes(xPathQuery, mg); 
    } 
0

リストの設定ページに移動します。 「タイトル、説明、およびナビゲーション」を右クリックし、URLをコピーします。それをメモ帳に貼り付け、文字列中の "List ="の後にすべてをコピーします。それがあなたのURLでエンコードされたGUIDです。 http://weblogs.asp.net/jimjackson/archive/2008/02/11/get-a-sharepoint-list-guid-from-the-browser.aspx

これは、手動で特定のリストの各GUIDを取得するためのものです:あなたがする必要があるのはhttp://www.albionresearch.com/misc/urlencode.php

ソースここでそれをデコードしています。

関連する問題