Geschlossenen WebPart wieder in die Seite integrieren Wenn man einen WebPart im SharePoint mit X schließt, so wird dieser trotzdem auf die Seite geladen und verbraucht Ressourcen - er wird lediglich nicht mehr angezeigt. Um ihn wieder auf der Seite anzuzeigen sind folgende Schritte notwendig: Site Actions -> Edit Page auswählen Add a Web Part auswählen Advanced Web Part gallery…
Dorrit Riemenschneider
Um aus einem Datum mit Uhrzeit, wie es beispielsweise GETDATE() zurückliefert, ein Datumswert ohne Uhrzeit zu machen, sind bis zur Version 2005 des SQL-Servers einige Verrenkungen notwendig. Ich möchte hier ein paar Lösungsansätze aufzeigen. Diese sind nach meiner Präferenz sortiert: SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE())) SELECT CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS DATETIME) SELECT CONVERT(DATETIME, CONVERT(CHAR(8), GETDATE(), 112), 112) Es gibt…
… oder wie bei Microsoft das Basteln abgeschafft wurde Wer schon einmal vor dem Problem stand, an eine SQL Server Prozedur oder Funktion eine Liste von Werten oder gar eine Tabelle zu übergeben, der wird für dieses Problem bestimmt eine Lösung gefunden haben: Ob man nun die Werte mit einem geeigneten Trennzeichen versehen (ich bevorzuge Pipes ) alle in eine…
Wer sich schon immer mal darüber geärgert hat, dass mehrere SQL-Anweisungen nötig waren, um in einer Tabelle, abhängig von den Bedingungen in einer anderen Tabelle, Daten einzufügen, zu ändern und/oder zu löschen, der wird über die neue MERGE-Anweisung in SQL Server 2008 hocherfreut sein - … vorausgesetzt, er kann sich für komplexe SQL-Anweisungen begeistern 😉 . Das absolute Standard-Szenario für die Anwendung…
… oder der lange Weg zum Glück Manchmal hat man als Sharepoint-Entwickler das Bedürfnis, sich in einer benutzerdefinierten Liste an das Hinzufügen oder Ändern eines Items anzuhängen und die Aktion abzubrechen und dabei eine nette benutzerdefinierte Fehlermeldung ausgeben. Das sollte eigentlich überhaupt kein Problem sein, man erstellt einfach einen EventReceiver für ItemAdding bzw. ItemUpdating und setzt dort die ErrorMessage sowie die…
Bei der Entwicklung komplexer Workflows für den SharePoint spielen auch Workflowaufgaben für die Benutzerinteraktion während der Ausführung des Workflows eine nicht unbedeutende Rolle. Eine solche Aufgabe hat nicht nur die Standardeigenschaften wie einen Titel oder eine Beschreibung sondern auch erweiterte Eigenschaften. Das praktische daran ist, dass diese kein eigenes Feld in der Liste benötigen sondern die Daten in den bereits vorhandenen…
Hin und wieder kommt es vor, dass man Dateien im BLOB-Format in einer Tabelle ablegt. Wenn man nun "schnell" auf diese Daten zugreifen will, steht man vor einem Problem, denn der Standard-SQL-Befehlssatz bietet keine Möglichkeit, Spalten mit Binärdaten zu füllen bzw. diese Daten wieder auszulesen und in eine Datei zu speichern. Nun hat man nicht immer eine Entwicklungsumgebung zu Hand,…
Als netter ASP.Net Programmierer mutet man dem Anwender wegen eines Klicks in eine CheckBox (in diesem Fall als Item einer CheckBoxList) kein Postback/Reload der Seite zu. Nun hat man ja aber vielleicht doch den Wunsch, das eine oder andere beim Klick zu erledigen - clientseitig per Javascript. Wenn möglich, will man den einzelnen CheckBoxList Items noch ein paar Attribute mitgeben,…
Manchmal hat man ein Problem, und wenn man es dann gelöst hat, ist die Lösung so einfach, dass man es fast nicht glauben mag. So ging es mir mit folgender Aufgabe: Gegeben ist ein String, der ein XML Document repräsentiert: <books> <book author="Meier">Lexikon der Meierei</book> <book author="Muster">Patterns in der Schneiderstube</book> </books> Diesen String möchte man (möglichst browserunabhängig, wenigstens soll es…
Dafür gibt es (theoretisch) eine denkbar einfache Lösung: SPListItem bietet eine Methode CopyTo(destinationUrl) an (http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.splistitem.copyto.aspx) - leider scheint diese aber nicht (in jedem Fall?) zu funktionieren. Zumindest in meinem Fall (benutzerdefinierte Liste mit benutzerdefiniertem Inhaltstyp UND Attachments - vielleicht erwarte ich einfach auch zu viel von Sharepoint…) tat sie es nicht. Stattdessen erhielt ich folgende Exception: "Source item cannot be…
Wenn man in Sharepoint einen benutzerdefinierten Inhaltstyp erstellt und diesen einer Liste zuweist, muss man sich im Idealfall nicht um die Formulare für das Anlegen, Anzeigen und Editieren der Listeneinträge kümmern - dies erledigt Sharepoint anhand der zum Inhaltstyp zugehörigen Spalten freundlicherweise automatisch für uns. Nun kann es aber passieren, dass wir mit dem von Sharepoint generierten Standardformular nicht zufrieden sind…
Web User Controls (*.ascx) kann man zur Designzeit sehr bequem per Drag & Drop auf ein Web Form (*.aspx) ziehen - den Rest erledigt Visual Studio für uns.Wenn man das Gleiche dynamisch zur Laufzeit erreichen möchte (weil man z.B. unterschiedliche ascx-Dateien verwenden oder einunddieselbe ascx-Datei mehrmals nacheinander laden will), kann man das folgendermaßen bewerkstelligen: Unser User Control heißt "SampleControl" und…
Wer für Sharepoint Web Forms und/oder Controls entwickelt, hatte vielleicht auch schon einmal das Bedürfnis, eine Sharepoint Liste als Datenquelle für z.B. eine RadioButton List zu verwenden. Dies lässt sich glücklicherweise mit geringem Aufwand umsetzen: Hier ist erst einmal unsere Sharepoint Beispielliste: Und hier die RadioButton List, an die wir die Liste binden wollen: Wichtig sind hier die Properties DataTextField…
Wer mit Visual Studio.Net Sharepoint Projekte (Webparts, Workflows etc.) entwickelt, weiß wie oft man während der Entwicklung ein IISRESET machen muss und auch, dass dies immer eine Weilchen Zeit in Anspruch nimmt. Besonders interessant wird es natürlich, wenn das IISRESET auf einem System ausgeführt wird, auf dem auch noch andere Nutzer arbeiten, denen dann förmlich der IIS "unter den Füßen…
Für alle Vista-Nutzer, die sich auch schon darüber geärgert haben, dass sie bei jedem Öffnen, Speichern, Einchecken usw. eines Office-Dokumentes aus einer Sharepoint Dokumentenbibliothek (2003 oder 2007) 3 mal nach ihrem Passwort gefragt werden, findet sich in der MS Knowledge Base die tröstliche Erklärung, das dieses Verhalten „by design“ ist: http://support.microsoft.com/kb/932118/en Immerhin gibt es aber einen Workaround dafür: Seite im…
Eine Konfigurationsdatei für Business Data Catalogs ist eine XML-Datei, die dem Schema bdcmetadata.xsd entspricht. Zum Binden der XSD-Datei an die neue XML-Datei gibt es mehrere Möglichkeiten: Wenn man die Datei im Visual Studio entwickeln möchte kopiert man am besten die Datei bdcmetadata.xsd in die Visual Studio 2005 Schema Library. Die Datei ist im Order Program Files\Microsoft Office Servers\12.0\Bin zu finden…
Wer schon einmal händig die default.master für eine Site (z.B. im Sharepoint Designer) angepasst hat und diese Änderungen für eine größere Menge vorhandener Sites übernehmen wollte, weiß, wie zeit- und nervtötend dies sein kann: jede Site muss einzeln im Sharepoint Designer aufgerufen und die Masterpage ersetzt werden.Mit einer kleinen Konsolenanwendung kann man hier Abhilfe schaffen: Die Anwendung läuft rekursiv durch alle Sites und Subsites ab einer übergebenen URL, lädt die als Datei auf dem Sharepoint Server (MOSS oder WSS) bzw. einem Fileshare gespeicherte Masterpage in die Masterpage-Galerie der Site hoch und setzt sie als Default Masterpage.
Wenn man eine Sharepoint Site löschen will, die mehrere Subsites hat, ist das nicht möglich, ohne vorher alle Subsites zu löschen. Dies kann ein ziemlich aufwändiger Prozess sein, zumal das Löschen im Browser recht umständlich ist (--> Site anzeigen --> Site Settings --> Delete this site --> Warnung wird angezeigt --> Delete --> Rückfrage mit JA beantworten --> Sharepoint springt…
Wenn man programmgesteuert eine vorhandene Datei von der Festplatte in eine Sharepoint Dokumentenbibliothek hochladen will, kann man dies mittels folgender C#-Befehle bewerkstelligen: 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,…