Wie fügen Sie benutzerdefinierte Menü Aktionen programmgesteuert in SharePoint?
Muss ich hinzufügen, um eine benutzerdefinierte Menü Aktion, um einen benutzerdefinierten Inhaltstyp programmgesteuert in c#. Dies ist, da will ich nicht wissen, die URL, die ich brauche, um die Verknüpfung zu vorher. Die URL wird dann von der Konfiguration, wenn die Funktion aktiviert ist.
Ich habe versucht, die folgenden:
Hinzugefügt, die CustomAction in meinem Element.xml Datei:
<CustomAction
Id="MyID"
RegistrationType="ContentType"
RegistrationId="0x010100ef19b15f43e64355b39431399657766e"
Location="EditControlBlock"
Sequence="1000"
Title="My Menu Item">
<UrlAction Url="" />
</CustomAction>
In meiner Funktion Empfänger FeatureActivated-Methode, die ich habe:
SPElementDefinitionCollection eleCollection =
properties.Feature.Definition.GetElementDefinitions(
new System.Globalization.CultureInfo(1));
foreach (SPElementDefinition ele in eleCollection)
{
if (ele.Id == "MyID")
{
System.Xml.XmlNode node = ele.XmlDefinition.FirstChild;
node.Attributes[0].Value = "MY URL";
ele.FeatureDefinition.Update(true);
}
}
Ich würde erwarten, dass dieser code zum aktualisieren der UrlAction Url mit "MEINE URL" muss es aber nicht. Wenn ich codieren einer URL in der XML funktioniert, aber ich muss in der Lage sein, es zu tun programmgesteuert.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die SPUserCustomActionCollection auf das SPWeb-Objekt:
Diese Weise können Sie die URL zu, was Sie wollen. Wenn Sie die Aktualisierung einer vorhandenen benutzerdefinierten Aktion können Sie iterieren durch die Sammlung, und aktualisieren Sie die eine, die Sie suchen. Aktualisieren Sie das element XML-definition nach der Installation die benutzerdefinierte Aktion nicht tun.
site.UserCustomActions.Add();
oder die Aktion war nicht sichtbar in sub-webs.Je nachdem, was Sie erreichen wollen, können Sie einige javascript;
den ~site und ~siteCollection auch funktioniert:
Ich glaube nicht, dass die WSS-schema-definition können für eine leere Url-Attribut in das UrlAction-element. Vielleicht versuchen Sie eine "Standard" - url in der xml-Datei, die Sie überschreiben später?