2010-11-19 16 views
1

Ich habe eine Textdatei mit List Name und Artikelname. Ich muss Item Guid durch seinen Namen bekommen. Wie? (nicht foreach splititem Element in splist, weil die Textdatei ist groß und die Schleife wird eine Gebühr)Get Guid eines Listentitels

+0

Sie werden eine Art von Schleife verwenden müssen, wenn Sie jedes Element nachschlagen möchten ... Könnten Sie weitere Informationen über "Elementname" hinzufügen? Sind diese Dokumente? Artikel auflisten? In welcher Spalte wird "Elementname" in SharePoint zugeordnet? –

Antwort

0

Sie haben möglicherweise genug Informationen, um die SPWeb-Funktion GetListItem zu verwenden, sonst müssen Sie SPWeb.SearchListItems versuchen. Keines davon wird auch sehr schnell sein.

Die Web-Services haben eine anständige Suchfunktion, die ich verwendet habe, wie zum Beispiel:

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

Wechseln Sie zur Listeneinstellungsseite. Klicken Sie mit der rechten Maustaste auf "Titel, Beschreibung und Navigation" und kopieren Sie die URL. Fügen Sie das in Notizblock ein und kopieren Sie alles nach "List =" in der Zeichenfolge. Das ist Ihre URL-codierte GUID für die Liste. Alles, was Sie tun müssen, ist es hier zu dekodieren http://www.albionresearch.com/misc/urlencode.php

Quelle: http://weblogs.asp.net/jimjackson/archive/2008/02/11/get-a-sharepoint-list-guid-from-the-browser.aspx

dies ist für manuell jede GUID einer bestimmten Liste zu bekommen.