当droppable在嵌套dataList

时间:2017-10-03 19:26:13

标签: jsf primefaces draggable jsf-2.2

这是包含draggable项的主视图。在这个视图中,我有ui:include来包含一个也有丢弃区域的UI片段。

mainView.xhtml

<p:dataList id="outerList" var="varOuter" value="#{myVO.getOuterList()}"> 
    <div>
        <span>#{varOuter.someVal}</span>                                        
    </div>  

    <p:dataList id="innerList" var="innerVar" value="#{myVO.getInnerList()}">
        <div class="crew-list">
            <h:form>                                                            
                <h:panelGroup id="draggableItem" layout="block">
                        <span>#{innerVar.someVal}</span>                                                
                </h:panelGroup>                                                                                                                                                             
                <p:draggable for="draggableItem" opacity="0.5" scope="ab"
                    revert="true" helper="clone" appendTo="@(body)" zindex="4" >                                                        
                </p:draggable>                                                      
            </h:form>   
         </div>
     </p:dataList>
</p:dataList>   
 ...

<ui:include src="fragment.xhtml">
        <ui:param name="param" value="#{paramVal}" />                                            
</ui:include>                           

fragment.xhtml

<p:dataList id="list" var="pos" value="#{myVO.getPositions()}" rowIndexVar="rowIndex">
        <ui:fragment rendered="#{!pos.isFilled()}">
            <h:panelGroup layout="block" id="dropArea">
                <span>Drop Here</span>              
            </h:panelGroup>    
            <p:droppable for="dropArea" hoverStyleClass="active"
                    scope="ab" datasource=":outerList:innerList">
                <p:ajax listener="#{crewChangeVO.onDrop}" update="list" />
                <f:attribute name="index" value="#{rowIndex}" />
            </p:droppable>
        </ui:fragment>
</p:dataList>

现在我遇到的问题是,我无法正确映射droparea上的datasource。没有数据源,拖放工作正常,但我没有在我的bean方法中获取数据(拖动对象),我需要一种方法来知道拖动了哪个对象。

会对如何实现此功能的任何输入进行评论。

更新 使用单个(非嵌套)dataList作为源,其外部表单可以工作。但问题是它不适用于嵌套列表。所以,现在我正在进行设计更改并删除嵌套列表。

0 个答案:

没有答案