2013-10-25 2 views
1

Сценарий QueryDocumentDelete в базе данных, похоже, запускается из клиента Notes Notes при удалении документа. Есть ли подобное событие, когда документ удаляется с помощью простого действия «Удалить выбранные документы»?QueryDocumentDelete в Xpages

+0

То, что вы хотите работать на этом мероприятии? –

ответ

0

Вы правы, QueryDocumentDelete в сценарии базы данных является функцией UI Notes и работает только с клиентом Notes.

К сожалению, подобного простого события нет Delete Selected Documents.

Простым решением является написать всю функциональность «Удалить выбранные документы» самостоятельно. Таким образом, вы можете делать все, что захотите, до того, как документы действительно удалены или не удастся удалить определенные документы.

Вот пример кода для кнопки «Удалить» Документы который удаляет документы в панели просмотра (с идентификатором «viewPanel1»):

<xp:button 
    value="Delete Selected Documents" 
    id="button1"> 
    <xp:eventHandler 
     event="onclick" 
     submit="true" 
     refreshMode="complete"> 
     <xp:this.script><![CDATA[ 
     if(!XSP.isViewPanelRowSelected("#{id:viewPanel1}", "_colcbox")){ 
      XSP.alert("Please select one or more documents to delete."); 
      return false; 
     } 
     if (!XSP.confirm('Are you sure you want to delete selected documents?')){ 
      return false; 
     }]]></xp:this.script> 
     <xp:this.action><![CDATA[#{javascript: 
     var viewPanel = getComponent("viewPanel1"); 
     var selectedIds = viewPanel.getSelectedIds(); 
     for(i=0; i < selectedIds.length; i++) { 
      var docId = selectedIds[i]; 
      var doc = database.getDocumentByID(docId); 
      // do things here you would do on QueryDocumentDelete 
      doc.remove(true); 
      doc.recycle(); 
     }}]]></xp:this.action> 
    </xp:eventHandler> 
</xp:button> 
+0

Спасибо. Мне показалось, что я должен был сделать это, но надеялся, что есть более простой способ. :) –

+0

@Bruce: Я попытался использовать actionListener для xp: deleteSelectedDocuments, но ничего проще, чем просто «изобретать» действие «Удалить выбранные документы». На самом деле это не так уж плохо, так как по-прежнему можно сохранить код для удаления документов в центральном месте, таком как функция SSJS или класс Java, который вы вызываете из действия. –