Pregunta

He añadido un nuevo botón a la cinta de SharePoint para bibliotecas de documentos. Todo esto funciona bien y el botón se activa / desactiva en función del número de elementos seleccionados ... bien!

Quiero mejorar esta desactivando el botón cuando se selecciona una carpeta similar a cómo el estándar de SharePoint 'correo electrónico un enlace' funciona el botón. ¿Alguien puede ofrecer algún consejo sobre la forma de abordar esto? He buscado en Google en todo, pero no he podido encontrar nada.

El código actualmente tengo es el siguiente:

  <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>
¿Fue útil?

Solución

Utilice la propiedad fsObjType:

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

Otros consejos

U puede alertar ¿Qué se obtiene cuando se selecciona una carpeta usando SP.ListOperation.Selection.getSelectedItems ();

Licenciado bajo: CC-BY-SA con atribución
scroll top