Jul 292008
 

Eine Auflistung der öffentlichen Eigenschaften, deren Funktion und Bedeutung findet man bei Joe Shepherd.

  1. [WebBrowsable(true),
  2. Personalizable(false),
  3. WebPartStorage(Storage.Personal),
  4. WebDisplayName("User Name(Domain\\username)"),
  5. WebDescription("User to display in the WebPart."),
  6. SPWebCategoryName("Options")]
  7. public string UserLoginName
  8. {
  9. get { return _loginName; }
  10. set { _loginName = value; }
  11. }

http://joeshepherd.spaces.live.com/blog/cns!9AE2097A4A610B63!302.entry

Jul 292008
 

Bisher dachte ich, das es keinen wirklichen Unterschied zwischen beiden Methoden gibt. Jedoch lehrte mich ein Fehler beim Kunden eines besseren.

Dieser Kunde beklagte, das keine Filterung und Sortierung mit der von mir gerenderten Liste wie mit Standardlisten des Sharepoints möglich sei.

Nach einiger Recherche im Netz fand ich verschiedene Seiten, die ctxId=1 und ctx1 gegen eine Zufallszahl ersetzen (um mehrere Instanzen dieses Webparts auf einer Seite zu ermöglichen -> http://www.tech-archive.net) und eine Seite wo das Interface ICallBackHandler implementiert wird um die Gruppierung zu ermöglichen(http://darrenjohnstone.net).

Das alles versuchte ich auch in meinem Webpart jedoch war es dann irgendwann soweit, das sich überhaupt kein Kontextmenü für die Filterung mehr öffnete. Nach 1 1/2 Tagen Fehleranalyse und probieren zeigte ich dieses Problem einen Kollegen. Dieser hatte die gleiche Methode ebenso in seinem Webpart genutzt und schaute bei sich nach - bei ihm ging es und das sogar ohne ctx-Tausch oder sonstige Verrenkungen. Nach kurzer Codeanalyse war das Problem klar.

 

Er benutzte SPView.RenderAsHtml() und ich SPList.RenderAsHtml(). Nach kurzem Umbau funktionierte nun auch meine Filterung und Sortierung im Webpart.

Ich hoffe das sich hiermit einige Leute diese Zeit sparen können :)

Jul 162008
 

Da ich seit einigen Wochen begeisterter Nutzer des Windows Live Writer bin, habe ich ein wenig mit den Funktionen des Programms herum gespielt und bemerkt, dass es ja keine (Standard)Unterstützung für installierte Plugins auf dem Server gibt. In meinem Fall wäre das eigentlich nur das Plugin GeSHi, welches bei der Formatierung von Codeschnipseln hilft.

Nach kurzer Recherche über die "Suchmaschine meines Vertrauens" fand ich keine Ergebnisse und so schaute ich mich ein wenig im SDK des Live Writers um. Schnell wurde klar, das ein Plugin kein Hexenwerk ist und ich begann ein wenig herum zu spielen.

Das Ergebnis ist im Downloadbereich zu finden.

Anleitung:

  1. Zip Datei herunterladen und entpacken
  2. LWGeSHiSetup.msi doppelt klicken und warten was passiert
  3. gegebenenfalls den Live Writer starten und ausprobieren :)

 

Bilder:

Plugin öffnen

 

Eingabe GeSHi Form

 

Funktionsweise:

Im Pluginbereich auf "GeSHi Code einfügen..." klicken, damit öffnet sich die Form im zweiten Bild. In diesem per Dropdown die gewünschte Sprache wählen und den Codeteil ins Textfeld kopieren. Gegebenenfalls noch die Checkbox "Show numbers" aktivieren um vor dem Code die Zeilenanzahl einzublenden. Hierbei wird eine weitere Textbox dargestellt, wo die Startzeile angegeben werden kann. Mit "OK" geht's dann wieder zurück zum Live Writer.

 

 

Über Feedback oder Bugmeldungen freue ich mich natürlich :)

 

Viel Spaß damit

 Veröffentlicht von am 16. Juli 2008
Jul 132008
 

Die Markierung neuer Inhalte in Sharepoint Lists lässt sich individuell über das Tool stsadm beeinflussen. Egal ob der Zeitraum verlängert / verkürzt der komplett abgeschalten werden soll, lässt sich mit folgendem Kommando erledigen:

stsadm.exe –o setproperty –pn days-to-show-new-icon –pv [number of days] –url [Server]

Abschalten kann man es dann mit

stsadm.exe –o setproperty –pn days-to-show-new-icon –pv 0 –url [Server]

Jul 112008
 

Mein zweiter Fehler des heutigen Tages kam direkt nach der Erstellung und Aktivierung des Feature für die Masterpage.

Nach der Aktivierung bekam ich den Fehler bei jedem Seitenaufruf angezeigt, obwohl eigentlich kein Fehler drin sein konte, da die Masterpage ja vorher auch funktionierte. Nach kurzer Recherche fand ich dann die Lösung, das man die Kommentare in der Masterpage entfernen sollte. Also versucht und geklappt :)

Jul 112008
 

Heute hatte ich mit 2 Fehlermeldungen zu kämpfen, welche nicht wirklich aussagekräftig daher kommen. Zum Problem: Ich habe eine Masterpage, welche normal per Upload in der Masterpage Gallery hinterlegt ist (Upload).

Diese wollte ich auf Feature umstellen, da Änderungen für alle Sitecollections einfach zu komplex sind (Upload, CheckIn, Publish, Approve)

Also nahm ich die Masterpage und bastelte ein kleines Feature. Bis dahin alles problemlos. Jedoch musste die alte Datei ja erst einmal aus der Gallerie verschwinden.... Also "Delete" geklickt und ich erhlate die Fehlermeldung "This item cannot be deleted because it is still referenced by other pages"

Nach kurzer Recherche fand ich einen Tip bei Katrien
Einfach einen neuen Ordner erstellen, Datei per SPD oder Windows Explorer in diesen kopieren und den Ordner anschließend löschen.

Das wars, Problem behoben und ich konnte endlich die neue Datei über Feature nutzen.

Jul 092008
 

Dieser Fehler könnte daher stammen, das der aktuelle User keine Farm Adminstrationsrechte besitzt. In meinem speziellen Fall betraf es das Kommando "stsadm -o upgradesolution".

Dieser Fehler tritt allerdings auch auf, wenn man mit einer Windows Form und dem Code SPSecurity.RunwithElevatedPrivileges im Zusammenhang mit SPJobDefintions arbeitet und der ApplicationPool Account zwischen WebApplication und Zentraladministration verschieden ist!

 

Derzeit suche ich nach einer Lösung für das 2 Problem aber habe keine wirkliche Lösung parat. In der Testumgebung half es, den ApplicationPool Account der WebApplication in den Farm Administratoren aufzunehmen und einen IISReset durchzuführen. Dieses Szenario blieb in der Wirkumgebung des Kunden allerdings erfolglos. :(

Jul 012008
 

Wenn ein Fehler mit folgender Meldung auftaucht, sollte man direkt vor der Änderung am Web ein web.AllowUnsafeUpdates="true"; einfügen

 Die Sicherheitsüberprüfung für diese Seite ist ungültig. Klicken Sie auf die Schaltfläche 'Zurück' Ihres Browsers, aktualisieren Sie dann die Seite, und starten Sie den Vorgang erneut.

Dieses Phänomen tritt ebenfalls auf, wenn AllowUnsafeUpdates auf "true" gesetzt wurde, man jedoch kurzzeitig eine andere Methode/Routine aufruft und im Anschluss daran wieder am Web eine Änderung vornehmen möchte.