Come disattivare un pulsante della barra multifunzione quando si seleziona una cartella
-
16-10-2019 - |
Domanda
Ho aggiunto un nuovo pulsante alla barra multifunzione di SharePoint per le raccolte documenti. Tutto questo funziona bene e il pulsante viene attivato / disattivato a seconda del numero di elementi selezionati ... bene!
voglio migliorare questo disabilitando il tasto quando è selezionata una cartella simile a come lo standard di SharePoint '-mail un link' funzionamento del pulsante. Chiunque può offrire qualche consiglio su come affrontare questo? Ho Googled intorno, ma non sono riuscito a trovare nulla.
Il codice ho attualmente è la seguente:
<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>
Soluzione
Utilizzare la proprietà fsObjType
:
EnabledScript="javascript:
var items = SP.ListOperation.Selection.getSelectedItems();
(items.length == 1 && items[0].fsObjType == 0);"
Altri suggerimenti
Can u avvisare che cosa si ottiene quando si seleziona una cartella utilizzando SP.ListOperation.Selection.getSelectedItems ();