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&amp;ListId={ListId}&amp;ItemId=' + SP.ListOperation.Selection.getSelectedItems()[0].id + '&amp;Source=' + window.location"
          EnabledScript="javascript:function singleEnable()
          {
            var items = SP.ListOperation.Selection.getSelectedItems();
            var ci = CountDictionary(items);
            return (ci == 1);
          }
          singleEnable();" />
      </CommandUIHandlers>
    </CommandUIExtension>
  </CustomAction>
È stato utile?

Soluzione

Utilizzare la proprietà fsObjType:

EnabledScript="javascript:
  var items = SP.ListOperation.Selection.getSelectedItems();
  (items.length == 1 &amp;&amp; items[0].fsObjType == 0);"

Altri suggerimenti

Can u avvisare che cosa si ottiene quando si seleziona una cartella utilizzando SP.ListOperation.Selection.getSelectedItems ();

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top