SharePoint - EventReceiver - vytvoření kontextového menu

21.02.2014

Zadání

potřebuji vytvořit Feature pro aktivaci kontextového menu v aktuálním webu pro knihovnu typu "Kontakt".

Řešení

Vytvořím EventReceiver, který aktivuji pomoci Feature ve Scope = Web. Tzn. akce se založí pouze pro knihovny v aktuálním webu.

Kód EvenReceiveru

FeatureActivated

public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
    SPWeb web = (SPWeb)properties.Feature.Parent;
    SPContentType contentType = web.Site.RootWeb.ContentTypes["Kontakt"];
    SPUserCustomAction action = web.UserCustomActions.Add();

    action.RegistrationType = SPUserCustomActionRegistrationType.ContentType;
    action.RegistrationId = contentType.Id.ToString();
    action.Location = "EditControlBlock";
    action.Sequence = 450;
    action.Title = "Moje menu";
    action.Rights = SPBasePermissions.EditListItems;
    action.Url = "/_Layouts/MojeUrl..aspx";
    action.Update();
}

FeatureDeactivating

public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
{
    SPWeb web = (SPWeb)properties.Feature.Parent;
    SPContentType contentType = web.Site.RootWeb.ContentTypes["Kontakt"];
    foreach (SPUserCustomAction action in web.UserCustomActions)
    {
        if (action.Name != null && action.Title.Equals("Moje menu"))
        {
            action.Delete();
            web.Update();
            break;
        }
     }
}

© 2020 Olda Zátopek
Vytvořeno službou Webnode
Vytvořte si webové stránky zdarma! Tento web je vytvořený pomocí Webnode. Vytvořte si vlastní stránky zdarma ještě dnes! Vytvořit stránky