2011-01-24 27 views
5

有業務需要分類的項目。最好的想法似乎是將項目從一個列表拖放到類別列表中。類別數量可能會有所不同,因此使用了p:dataTable。 發送了Ajax請求,但onDrop方法不是從dataTable中調用的。何時刪除數據表和列並靜態輸出面板,然後調用onDrop?如何在數據表中使用PrimeFaces p:droppable?

如何最好地將項目拖放到動態更改的類別中?

 <h:form prependId="false"> 
      <h:panelGrid columns="2"> 
       <p:dataTable id="itemstable" value="#{categoryBean.items}" var="item"> 
        <p:column> 
         <p:outputPanel id="itemrow"> 
          <h:outputText value="#{item}"></h:outputText> 
         </p:outputPanel> 
         <p:draggable for="itemrow"></p:draggable> 
        </p:column> 
       </p:dataTable> 

       <p:dataTable value="#{categoryBean.categories}" var="cat"> 
        <p:column> 
         <p:outputPanel id="cats1"> 
          <h:outputText value="category1"></h:outputText> 
         </p:outputPanel> 
         <p:droppable for="cats1" 
            dropListener="#{categoryBean.onDrop}" 
            tolerance="pointer" 
            activeStyleClass="slotActive" 
            datasource="itemstable"> 
         </p:droppable> 
        </p:column> 
       </p:dataTable> 
      </h:panelGrid> 
     </h:form> 

回答

5

有一個在一個PrimeFaces bug,當<p:droppable>嵌套在任何數據的重複元件的dropListener不會被調用。我也嘗試使用Facelets重複標記<ui:repeat>,但dropListener不會被調用,就像拖動到<p:dataTable>一樣。

在PrimeFaces展示中,所有拖放示例都有靜態可拖放區域。
PrimeFaces ShowCase

+0

不是這種情況了。得到它與從單元格到單元格的拖放操作。 – Thomas 2016-01-18 20:19:27

相關問題