Comment désactiver un bouton de ruban lorsqu'un dossier est sélectionné
-
16-10-2019 - |
Question
J'ai ajouté un nouveau bouton au ruban de SharePoint pour les bibliothèques de documents. Tout cela fonctionne bien et le bouton est activé / désactivé en fonction du nombre d'articles sélectionnés ... bien!
Je veux améliorer en désactivant le bouton lorsqu'un dossier est sélectionné similaire à la façon dont SharePoint standard « envoyer un lien » bouton fonctionne. Quelqu'un peut-il offrir des conseils sur la façon d'aborder ce sujet? Je l'ai googlé autour, mais n'ont pas été en mesure de trouver quoi que ce soit.
Le code que j'ai actuellement est la suivante:
<CustomAction
Id="Muhimbi.SharePoint.DocumentConverter.PDF.Ribbon.Documents.Copies.Controls.ConvertAndDownload.Action"
Location="CommandUI.Ribbon"
RegistrationType="ContentType"
RegistrationId="0x0101"
>
<CommandUIExtension>
<CommandUIDefinitions>
<CommandUIDefinition
Location="Ribbon.Documents.Copies.Controls._children">
<Button Id="Muhimbi.SharePoint.DocumentConverter.PDF.Ribbon.Documents.Copies.Controls.ConvertAndDownload.Button"
Command="Muhimbi.SharePoint.DocumentConverter.PDF.Ribbon.Documents.Copies.Controls.ConvertAndDownload.Button.Command"
Image16by16="/_layouts/images/Muhimbi.PDFConverter/pdf16.gif"
Image32by32="/_layouts/images/Muhimbi.PDFConverter/pdf32.gif"
LabelText="$Resources:ecb_title;"
Sequence="12"
TemplateAlias="o1" />
</CommandUIDefinition>
</CommandUIDefinitions>
<CommandUIHandlers>
<CommandUIHandler
Command="Muhimbi.SharePoint.DocumentConverter.PDF.Ribbon.Documents.Copies.Controls.ConvertAndDownload.Button.Command"
CommandAction="javascript:window.location='{SiteUrl}/_layouts/Muhimbi.PDFConverter/Convert.aspx?action=ConvertAndDownload&ListId={ListId}&ItemId=' + SP.ListOperation.Selection.getSelectedItems()[0].id + '&Source=' + window.location"
EnabledScript="javascript:function singleEnable()
{
var items = SP.ListOperation.Selection.getSelectedItems();
var ci = CountDictionary(items);
return (ci == 1);
}
singleEnable();" />
</CommandUIHandlers>
</CommandUIExtension>
</CustomAction>
La solution
Utilisez la propriété fsObjType
:
EnabledScript="javascript:
var items = SP.ListOperation.Selection.getSelectedItems();
(items.length == 1 && items[0].fsObjType == 0);"
Autres conseils
u peut alerter ce que vous obtenez lorsque vous sélectionnez un dossier à l'aide SP.ListOperation.Selection.getSelectedItems ();