Frage

Ich muss mit dem Client -Objektmodell einen neuen Dokument -Link zu einer Dokumentbibliothek hinzufügen. Ich vermute, ich könnte das Format der .aspx -Datei kopieren, die in den Elementen "Link zu einem Dokument" verwendet und als normale Datei hochgeladen werden, aber ich hoffe, dass es einen ordentlichen Weg gibt.

Was ich also tun möchte, ist das gleiche wie das Code -Beispiel unten, aber anstatt ein neues Dokument zu erstellen, möchte ich einen neuen Link zu einem Dokument erstellen.

ClientContext context = new ClientContext("http://wdev2008:22880");
context.Load(context.Web);
List list = context.Web.Lists.GetByTitle("Test Doc Link Library");
context.Load(list);
context.ExecuteQuery();

FileCreationInformation fileCreateInfo = new FileCreationInformation();
fileCreateInfo.Content = new byte[] { 0x33 };
fileCreateInfo.Url = "zerobyte";
File file = list.RootFolder.Files.Add(fileCreateInfo);
context.Load(file);
context.ExecuteQuery();

UPDATE: Laut dem Mod in diesem Forum darf ich nicht fragen, wie es mit einem Webdienst in einer separaten Frage geht, also werde ich den Titel, Tags und Inhalt dieser Frage ändern. Weiß jemand, wie man den Einsatz mit einem SharePoint -Webdienst oder einer Server -Seitensteuerung oder irgendetwas anderes macht?

War es hilfreich?

Lösung

Es stellt sich heraus Erstellen eines Elements "Link zu einem Dokument" in einer SharePoint -Dokumentbibliothek programmgesteuert.

Ich habe das Beispiel zugeschnitten, um das Client -Objektmodell zu verwenden:

 string docLinkTemplate = null;
 using (System.IO.StreamReader sr = new System.IO.StreamReader("SharePointDocLinkTemplate.txt"))
 {
     docLinkTemplate = sr.ReadToEnd();
 }

 string docLink = "http://myserver/test.doc";
 docLinkTemplate = String.Format(docLinkTemplate, docLink);

 FileCreationInformation fileCreateInfo = new FileCreationInformation();
 fileCreateInfo.Content = Encoding.UTF8.GetBytes(docLinkTemplate);
 fileCreateInfo.Url = "testlinkfordoc.doc.aspx";
 File file = list.RootFolder.Files.Add(fileCreateInfo);
 ListItem fileListItem = file.ListItemAllFields;
 fileListItem["ContentType"] = "Link to a Document";
 FieldUrlValue urlValue = new FieldUrlValue();
 urlValue.Description = "Link to doc test";
 urlValue.Url = docLink;
 fileListItem["URL"] = urlValue;
 context.Load(file);
 context.ExecuteQuery();

(Hoffentlich wird der Mod diese Antwort nicht wieder für unwürdig halten. Schade, dass die Mods auf diesen Programmierwebsites keine Stackoverflow -Wiederholung bekommen müssen, bevor sie anfangen können, ihr Gewicht herumzuwerfen.)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top