Jsf 数据源映射没有';嵌套数据列表中有Dropable时不工作
这是主视图,其中包含可拖动的Jsf 数据源映射没有';嵌套数据列表中有Dropable时不工作,jsf,primefaces,draggable,jsf-2.2,Jsf,Primefaces,Draggable,Jsf 2.2,这是主视图,其中包含可拖动的项。在这个视图中,我有一个ui:include,用于包含一个同样具有放置区域的ui片段 mainView.xhtml <p:dataList id="outerList" var="varOuter" value="#{myVO.getOuterList()}"> <div> <span>#{varOuter.someVal}</span>
项。在这个视图中,我有一个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>
<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>
#{varOuter.someVal}
#{innerVar.someVal}
...
fragment.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>
<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方法中无法获得数据(被拖动的对象),我需要一种方法来知道哪个对象被拖动
将对如何实现此功能的任何输入进行评估
更新
使用单个(非嵌套)数据列表作为源,并在其外部使用表单。但问题是它不适用于嵌套列表。因此,现在我正在进行设计更改并删除嵌套列表。如果您在更大的“范围”上使用表单,而不是在每个重复项的数据列表中使用表单,该怎么办?ui:fragment相关吗?您确定通过:outerList:innerList
引用数据源是正确的吗?如果您不“包括”它,而是直接使用它,那么它是否有效?如果我删除该表单并仅使用datasource=“outerList”
它将在设置数据时开始调用该方法。Rest组合不起作用ui:fragment
与我的情况相关,因为这是我发布的一小块html,视图中有更多的逻辑。我不确定:outerList:innerList
是否正确。这就是我需要帮助的地方。链接数据源为什么要删除表单并更改数据源?这不是我想要测试的。。。一个接一个地试试看。。。干杯沙哈。。我确实一个接一个地测试了它们。他们没有工作。因此,显然嵌套列表在引用可拖动对象时产生了问题。我确信:outerList:innerList
是不正确的。因此,我现在正在尝试其他增量方法来正确访问引用。那么,使用单个列表(非嵌套)数据列表作为源,其中包含一个表单,并使用include就可以了?如果是这样,你可以改进标题,因为你用更好的方式缩小了问题的范围。。。你是什么版本的?如果是6.1版本,可以尝试从源代码创建6.2版本的快照,如果仍然失败,您是否可以创建一个干净的小快照…如果您在更大的“范围”上使用表单,而不是在每个重复项的数据列表中使用表单,会怎么样?ui:fragment相关吗?您确定通过:outerList:innerList
引用数据源是正确的吗?如果您不“包括”它,而是直接使用它,那么它是否有效?如果我删除该表单并仅使用datasource=“outerList”
它将在设置数据时开始调用该方法。Rest组合不起作用ui:fragment
与我的情况相关,因为这是我发布的一小块html,视图中有更多的逻辑。我不确定:outerList:innerList
是否正确。这就是我需要帮助的地方。链接数据源为什么要删除表单并更改数据源?这不是我想要测试的。。。一个接一个地试试看。。。干杯沙哈。。我确实一个接一个地测试了它们。他们没有工作。因此,显然嵌套列表在引用可拖动对象时产生了问题。我确信:outerList:innerList
是不正确的。因此,我现在正在尝试其他增量方法来正确访问引用。那么,使用单个列表(非嵌套)数据列表作为源,其中包含一个表单,并使用include就可以了?如果是这样,你可以改进标题,因为你用更好的方式缩小了问题的范围。。。你是什么版本的?如果它是6.1,也许可以尝试从源代码创建一个6.2快照,如果仍然失败,您可以创建一个干净的小快照。。。