Je dois ajouter une action de menu personnalisée à un type de contenu personnalisé par programmation dans C#. C'est parce que je ne connaîtrai pas l'URL à laquelle je dois faire un lien au préalable. L'URL à lier sera retirée de la configuration lorsque la fonctionnalité est activée. J'ai essayé ce qui suit:Comment ajouter des actions de menu personnalisées par programme dans SharePoint?
Ajouté le CustomAction dans mon fichier element.xml comme:
<CustomAction
Id="MyID"
RegistrationType="ContentType"
RegistrationId="0x010100ef19b15f43e64355b39431399657766e"
Location="EditControlBlock"
Sequence="1000"
Title="My Menu Item">
<UrlAction Url="" />
</CustomAction>
Dans mon récepteur fonction méthode FeatureActivated, je:
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);
}
}
je me attends à ce code pour mettre à jour UrlAction Url avec "MY URL" mais ce n'est pas le cas. Si je code dur une URL dans le XML cela fonctionne mais je dois être capable de le faire par programmation.
Il est dommage que la custom ECB ne supporte pas ControlClass, ce qui donnerait plus de flexibilité que les anciennes macros {SiteUrl}. – kbrimington