Funktion aktiviertes Ereignis, das beim Erstellen einer neuen Unterseite mit der Webvorlage nicht ausgelöst wird
-
10-12-2019 - |
Frage
Wenn ich eine neue Website erstellte, habe ich ein Web-Scoped-Ereignis, das ich gerne laufen möchte.Das Feature wird aktiviert, aber das FeatureActivierte Ereignis wird nicht ausgelöst.
Die Site wird mit der WebTemplate erstellt, die die Merkmale der GUID im WebFatures-Knoten enthält. Aus meiner WebTemplate von ONET.XML, die das Feature angibt generasacodicetagpre.
Hier ist mein Spektivat-Code: generasacodicetagpre.
Wenn ich die Site erstellte, kann ich den Code nicht debuggen.Ich habe Debugger probiert.break () und einen Pause in VS2010 versucht.
Wenn ich das Paket von VS2010 bereitstellte, wird der mitgelieferte Spezialcode ausgelöst.Das Ereignis funktioniert also, aber nicht, wenn ich den neuen Standort erstellte. Weiß jemand, wie man dieses Problem lösen kann?
Lösung
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", ""));
}