c#

Zugriff auf Listeninhalte mit LINQ to SharePoint

SharePoint 2010 bie­tet mit der Assembly Microsoft.SharePoint.Linq.dll (zu fin­den im Ordner 14\ISAPI) die Möglichkeit, recht ein­fach Listeninhalte abzu­fra­gen. Wenn man sich etwas näher damit beschäf­tigt, kann man sehr viele Parallelelen zu LINQ to Objects und Linq to SQL ent­de­cken. Erster Schritt ist, eine Referenz auf die genannte Assembly hin­zu­zu­fü­gen. Ab die­sem Zeitpunkt steht der Namespace Microsoft.SharePoint.Linq zur Verfügung. Dieser beinhaltet…

Webtemplates via C# einem SPWeb hinzufügen

Jeder, der schon ein­mal ein Websitetemplate erstellt hat, kennt den müh­se­li­gen Weg über die vie­len Menu Punkte. Meist muss man erst ein­mal in die "Websiteeinstellungen" (Webseitaktionen -> Webseiteinstellungen -> Alle Websiteeinstellungen ändern). Dort fin­det man unter "Aussehen und Verhalten" -> "Seitenlayouts und Websitevorlagen". Dort kann man nun seine eige­nen Webtemplates aus­wäh­len. Da das ganze aber wenig prak­ti­ka­bel und umständ­lich ist, empfiehlt…

Sharepoint: AddFieldAsXml Bug oder internalName != displayName

Beim pro­gram­ma­ti­schen Erstellen von benut­zer­de­fi­nier­ten Spalten (SPField) in Sharepoint sind einige Dinge zu beach­ten und erwar­ten auch beach­tet zu wer­den. Hält man sich jedoch an die Spielregeln (API Dokumentation) und erzielt trotz­dem nicht das gewünschte Ergebniss, ist wahr­schein­lich wie­der ein Sharepoint Bug gefun­den wor­den. Dies musste ich heute wie­der mal schmerz­haft fest­stel­len. Sharepoint ver­wen­det zwei Namen um Felder zu kennzeichnen.…

Sharepoint 2007: Ordner in Listen und Bibliotheken entmystifiziert

Die letz­ten Tage habe ich damit ver­bracht, mich mit den Besonderheiten(oder bes­ser absur­den Angewohnheiten) von Sharepoint 2007  zu befas­sen. Speziell mit dem pro­gram­ma­ti­schen Anlegen von Ordnern und Unterordnern in Sharepoint Dokumenten – Bibliotheken bezie­hungs­weise Listen. Hier meine gesam­mel­ten Erfahrungen über das Anlegen von Ordnern in Bild- und Dokumentenbibliotheken (Picture- and Documentlibrary) Webseiten Bibliotheken (Pages Library) Wiederverwendbare Inhalte (Reusable Content) Bild-…

Zugriff auf erwei­terte Eigenschaften einer Workflowaufgabe

Bei der Entwicklung kom­ple­xer Workflows für den SharePoint spie­len auch Workflowaufgaben für die Benutzerinteraktion wäh­rend der Ausführung des Workflows eine nicht unbe­deu­tende Rolle. Eine sol­che Aufgabe hat nicht nur die Standardeigenschaften wie einen Titel oder eine Beschreibung son­dern auch erwei­terte Eigenschaften. Das prak­ti­sche daran ist, dass diese kein eige­nes Feld in der Liste benö­ti­gen son­dern die Daten in den bereits vorhandenen…

Clientseitiges "onchange" für ASP.Net CheckBoxList Items

Als net­ter ASP.Net Programmierer mutet man dem Anwender wegen eines Klicks in eine CheckBox (in die­sem Fall als Item einer CheckBoxList) kein Postback/Reload der Seite zu. Nun hat man ja aber viel­leicht doch den Wunsch, das eine oder andere beim Klick zu erle­di­gen – cli­ent­sei­tig per Javascript. Wenn mög­lich, will man den ein­zel­nen CheckBoxList Items noch ein paar Attribute mitgeben,…

Sharepoint Listenelement (SPListItem) in eine andere Liste kopieren

Dafür gibt es (theo­re­tisch) eine denk­bar ein­fa­che Lösung: SPListItem bie­tet eine Methode CopyTo(destinationUrl) an (http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.splistitem.copyto.aspx) – lei­der scheint diese aber nicht (in jedem Fall?) zu funk­tio­nie­ren. Zumindest in mei­nem Fall (benut­zer­de­fi­nierte Liste mit benut­zer­de­fi­nier­tem Inhaltstyp UND Attachments – viel­leicht erwarte ich ein­fach auch zu viel von Sharepoint…) tat sie es nicht. Stattdessen erhielt ich fol­gende Exception: "Source item can­not be…

Formular URLs für Sharepoint Inhaltstypen anpassen

Wenn man in Sharepoint einen benut­zer­de­fi­nier­ten Inhaltstyp erstellt und die­sen einer Liste zuweist, muss man sich im Idealfall nicht um die Formulare für das Anlegen, Anzeigen und Editieren der Listeneinträge küm­mern – dies erle­digt Sharepoint anhand der zum Inhaltstyp zuge­hö­ri­gen Spalten freund­li­cher­weise auto­ma­tisch für uns. Nun kann es aber pas­sie­ren, dass wir mit dem von Sharepoint gene­rier­ten Standardformular nicht zufrie­den sind…

User Controls dyna­misch zur Laufzeit in ein Web Form einbinden

Web User Controls (*.ascx) kann man zur Designzeit sehr bequem per Drag & Drop auf ein Web Form (*.aspx) zie­hen – den Rest erle­digt Visual Studio für uns.Wenn man das Gleiche dyna­misch zur Laufzeit errei­chen möchte (weil man z.B. unter­schied­li­che ascx-Dateien ver­wen­den oder ein­und­die­selbe ascx-Datei mehr­mals nach­ein­an­der laden will), kann man das fol­gen­der­ma­ßen bewerk­stel­li­gen: Unser User Control heißt "SampleControl" und…

Verwenden von Sharepoint Listen als Datenquellen für CheckBox Lists oder RadioButton Lists

Wer für Sharepoint Web Forms und/oder Controls ent­wi­ckelt, hatte viel­leicht auch schon ein­mal das Bedürfnis, eine Sharepoint Liste als Datenquelle für z.B. eine RadioButton List zu ver­wen­den. Dies lässt sich glück­li­cher­weise mit gerin­gem Aufwand umset­zen: Hier ist erst ein­mal unsere Sharepoint Beispielliste: Und hier die RadioButton List, an die wir die Liste bin­den wol­len: Wichtig sind hier die Properties DataTextField…

File upload in eine Sharepoint Dokumenten-bibliothek (C#)

Wenn man pro­gramm­ge­steu­ert eine vor­han­dene Datei von der Festplatte in eine Sharepoint Dokumentenbibliothek hoch­la­den will, kann man dies mit­tels fol­gen­der C#-Befehle bewerk­stel­li­gen: SPSite objSite = new SPSite("http://server/sites/samples"); SPFolder objFolder = objSite.OpenWeb().GetFolder("Shared Documents"); string sourcePath = "C:\\test.doc"; FileInfo fi = new FileInfo(sourcePath); int fileSize = (int) fi.Length; SPFileCollection objFiles = objFolder.Files; byte[] myFile = new byte[fileSize]; FileStream mystream = new System.IO.FileStream(sourcePath,…