Caractéristique événement activé non déclenché lors de la création d'un nouveau sous-site avec modèle Web

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/55577

Question

Lorsque je crée un nouveau site, j'ai un événement spécialisé sur feintactivé sur le Web que je voudrais courir.La fonctionnalité est activée mais l'événement Featureactivé n'est pas déclenché.

Le site est créé avec WebTemplate qui inclut le guid des fonctionnalités du nœud WebFeatures. De mon webtemplate d'oneet.xml qui spécifie la fonctionnalité

<WebFeatures>
   <Feature ID="e6e83174-0e6a-4fb6-a3e9-f16739a08a93" />
</WebFeatures>

Voici mon code Featureactivé:

private const string QuicklaunchHeader = "Saksmappe";

public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
    SPWeb webTemp = properties.Feature.Parent as SPWeb;
    var web = webTemp.Site.RootWeb;
    var rootFolder = web.RootFolder;
    rootFolder.WelcomePage = "Pages/CaseFolder.aspx";
    rootFolder.Update();

    //Remove old custom quick launch entry
    RemoveQuickLaunchItems(QuicklaunchHeader, web);

    //Add custom quick launch entry
    var header = new SPNavigationNode(QuicklaunchHeader, 
                                       web.Navigation.Home.Url,   false);
    web.Navigation.QuickLaunch.AddAsFirst(header);

    //TODO Set correct urls
    header.Children.AddAsLast(new SPNavigationNode("Saksdetaljer", ""));
    header.Children.AddAsLast(new SPNavigationNode("Merknader", ""));
}

Lorsque je crée le site, je ne suis pas en mesure de déboguer le code.J'ai essayé de débogger.break () et mettez un point de rupture dans VS2010.

Lorsque je déploie le paquet de VS2010, le code FeatureActivé est déclenché.Donc, l'événement fonctionne, mais pas lorsque je crée le nouveau site. Quelqu'un sait comment résoudre ce problème?

Était-ce utile?

La solution

You are using the rootweb of the site, not the current web, so any changing you are making is always to the rootweb. Instead of using webTemp to get rootweb, just use webTemp as the web.

private const string QuicklaunchHeader = "Saksmappe";

public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
    SPWeb web = properties.Feature.Parent as SPWeb;
    var rootFolder = web.RootFolder;
    rootFolder.WelcomePage = "Pages/CaseFolder.aspx";
    rootFolder.Update();

    //Remove old custom quick launch entry
    RemoveQuickLaunchItems(QuicklaunchHeader, web);

    //Add custom quick launch entry
    var header = new SPNavigationNode(QuicklaunchHeader, 
                                       web.Navigation.Home.Url,   false);
    web.Navigation.QuickLaunch.AddAsFirst(header);

    //TODO Set correct urls
    header.Children.AddAsLast(new SPNavigationNode("Saksdetaljer", ""));
    header.Children.AddAsLast(new SPNavigationNode("Merknader", ""));
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top