Manchmal kann es vorkommen, dass man in einer SharePoint-UrlAction innerhalb einer CustomAction die aktuelle Seite mitgeben möchte. Dies kann zum Beispiel sinnvoll sein, wenn man nach dem Klick auf den „OK“-Button auf der aufgerufenen Seite wieder auf die ursprüngliche Seite zurückkehren möchte.
Normalerweise ist eine CustomAction/UrlAction wie folgt aufgebaut:
<?xml version="1.0" encoding="utf-8"> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <CustomAction Id="MyAction" GroupId="PersonalActions" Location="Microsoft.SharePoint.StandardMenu" Sequence="1000" Title="My custom action"> <UrlAction Url="~sitecollection/_layouts/page.aspx"> </CustomAction> </Elements>
Und leider gibt es kein eingebauten Platzhalter für die aktuelle Seite.
Mit etwas JavaScript kann man dieses Problem aber Lösen und den URL-Parameter „Source“ dynamisch abfüllen lassen:
<UrlAction Url="javascript:window.location='{SiteUrl}/_layouts/page.aspx?List={ListId}&Source=' + window.location">
SharePoint verwendet diesen Source-Parameter um den Benutzer auf die jeweilige Seite zu leiten.