webpartuser.cs
de web part class bevat de code van het web part. een web part class is gebaseerd op de webpart class uit de microsoft.sharepoint.webpartpages namespace. dit wordt geregeld door te erven van microsoft.sharepoint.webpartpages.webpart. in de code worden attributen gezet op class-nivo en op property-nivo. deze attributen bepalen het gedrag van het web part.
we openen webpart1.cs en veranderen de naam van de class en de bestandsnaam in webpartuser. op class-nivo kunnen we instellen wat de default property is van de webpart class. standaard worden web parts uitgerust met één property: “text”.
fig. 4: web part class attributes
het toevoegen van extra web part properties werkt hetzelfde als het toevoegen van properties aan ‘normale’ c# classes. we passen de standaardwaarde van de property text aan.
met het attribute browsable geven we aan dat de property via het web interface in de portal aangepast kan worden.
de category waarin deze eigenschap in het task pane getoond zal worden is “miscellaneous”. wanneer je meerdere eigenschappen aan een web part hebt toegevoegd, kun je ervoor kiezen een eigen categorie toe te voegen door hier een andere naam in te vullen.
de web part storage eigenschap bepaalt hoe de web part eigenschappen worden opgeslagen in de sharepoint database. de standaard waarde personal betekent dat de waarde voor elke gebruiker wordt opgeslagen. als je de waarde op shared zet, wordt de property voor alle gebruikers opgeslagen. wanneer je de storage eigenschap op none zet, wordt de standaard waarde gebruikt en wordt de waarde van de eigenschap niet in de sharepoint database opgeslagen, maar wordt de standaard waarde in het web part getoond.
fig. 5: aangepaste code web part property “text”
fig. 6: web part properties aanpassen in de portal
web parts zijn bijzondere .net custom controls. dat betekent dat er geen grafische interface is waarmee je je web part kunt aanpassen. (je kunt geen knoppen op je web part slepen.) in plaats daarvan bouw je je web part op in de renderweb part method, die je kunt vergelijken met de render method van een custom control.
standaard staat in de renderweb part method code die ervoor zorgt dat de text property van het web part getoond wordt. deze code vervangen we door code om de naam van de currentuser te tonen. hiervoor gebruiken we het context object.
fig. 7: aangepaste code web part method “renderwebpart”
tip:
het context object kun je gebruiken om informatie op te vragen over de context van het web part: de current user en de site waarin het web part is geplaatst.
voorbeeld:
using microsoft.sharepoint.webcontrols
spweb myweb = spcontrol.getcontextweb(context);
string username = myweb.currentuser.loginname;
myweb is de sharepoint site waarop het web part is geplaatst.