Posts mit dem Label Liste werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Liste werden angezeigt. Alle Posts anzeigen

Dienstag, 7. Oktober 2008

Listeninstanzen in Solutions vorbefüllen

Bisher haben wir Listen, die per Solutions installiert werden und von Haus aus über Werte verfügen sollten mit Hilfe von FeatureReceivern befüllt. Da es sich dabei um eine Vielzahl von Listen mit mehreren Spalten handelte, bot es sich an, das ganze über eine Befüll-Methode abzuarbeiten, die ihre Daten aus den entsprechenden Settings-Dateien beziehen.

Nun arbeite ich aktuell aber an einem sehr kleinen Projekt welches derartigen Aufwand nicht gerechtfertigt: im Rootweb wird eine Liste mit vier einzelnen Einträgen benötigt, die sich nicht mehr ändern werden.

Diese Werte werden nun einer ListInstance mitgegeben:


<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<!-- PicklistRole -->
<ListInstance FeatureId="39fba828-57af-4c1f-ba42-19cc13e8ad99"
TemplateType="100"
Id="PicklistRoleList"
Title="$Resources:root_lists,picklistRoleInstanceTitle;"
Description="$Resources:root_lists,picklistRoleInstanceDescription;"
OnQuickLaunch="FALSE"
Url="$Resources:core,lists_Folder;/Picklist Rolle">
<Data>
<Rows>
<Row>
<Field Name="Title">Projektmanager</Field>
</Row>
<Row>
<Field Name="Title">Technischer Leiter</Field>
</Row>
<Row>
<Field Name="Title">Entwickler</Field>
</Row>
<Row>
<Field Name="Title">Projektassistenz</Field>
</Row>
</Rows>
</Data>
</ListInstance>
</Elements>


Diese ListInstance wird im Feature eingebunden welches dann über die WebFeatures-Sektion der onet.xml aktiviert wird und daraufhin die Liste mitsamt den Einträgen bereitstellt:

Freitag, 29. August 2008

Toolbar in WebPart programmatisch ausblenden

Hier wieder ein schönes Beispiel, was für Potential für Zeitverschwendung in SharePoint steckt:
Über die Oberfläche ist es relativ simpel, die Toolbar in einem Webpart zu verstecken, wie der folgende Screenshot zeigt.



Einfach auf "Freigegebenes Webpart bearbeiten" klicken und bei Symbolleistentyp "Keine Symbolleite" auswählen. Abspeichern und Fertig.

Das ganze jetzt programmatisch in die Solution mit hineinzunehmen sollte doch wohl kein Aufwand sein. Ist es auch nicht... - wenn man weiß, wo man hinfassen muss.

Und das herauszufinden kostet Zeit.
Denn das SDK und selbst die MSDN sind da leider unvollständig. Erst ein Kommentar aus der Community brachte Licht ins Dunkel: *click*

Um also in einem Webpart - in meinem konkreten Fall das ListView-Webpart auf eine Aufgabenliste mit Gantt-View - die Symbolleiste auszublenden bedarf es folgender Anpassungen:


in der schema.xml der Liste

<views>
.....
<View Type="GANTT" DisplayName="Gantt" Url=&quotGantt.aspx" Level="1" BaseViewID="13" ContentTypeID="0x" ImageUrl="/_layouts/images/generic.png" WebPartZoneID="Main">
<Toolbar Type="None"></Toolbar>
.....
</View>
.....
</views>

in der onet.xml

<modules>
<module name="DefaultConfig" url="Lists/WebsitesList" list="101">
<file url="BlankPortalPage.aspx" name="Kalender.aspx" type="GhostableInLibrary">

<view list="Lists/TaskList" name="Gantt" displayname="Gantt" type="GANTT" baseviewid="13" webpartzoneid="Top" webpartorder="2">
<!--[CDATA[ <webpart xmlns="http://schemas.microsoft.com/WebPart/v2" iwp="http://schemas.microsoft.com/WebPart/v2/ListView"> <assembly>Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</assembly> <typename>Microsoft.SharePoint.WebPartPages.ListViewWebPart</typename> <frametype>None</frametype> <title>Kalender</title> </webpart> ]]-->
</view>
</file>

</module>

</modules>


Dadurch werden sowohl im View als auch im WebPart die Symbolleisten nicht mehr angezeigt. Der Nachteil daran ist, dass über die Oberfläche die Toolbar aber nicht mehr manuell wiederangezeigt werden kann.