我试图拖放一些桌子。源表是从selectOneMenu-> AccordianPanel->数据表动态生成的。我可以从droppable指向它,并在数据源中列出下面的直接路径,但是在删除attribValue文本时我得到noRowAvailableException。在解决方案的路径上有任何想法吗?如果我遗漏了需要知道的东西,我会道歉,我会根据需要更新。谢谢。
<p:accordionPanel value="#{testBean.attributeList}" var="attribute" id="attribute" >
<p:tab title="#{attribute.displayName}">
<p:dataTable value="#{attribute.valuesList}" var="attribValue" id="attribValue" selectionMode="single" rowKey="#{attribValue}" selection="#{testBean.attribValue}">
<p:column>
<script type='text/javascript'>
$(".myDraggables").draggable({
helper: function() {
return $(this).clone().appendTo('body').css('zIndex', 5).show();
}
});
</script>
<h:outputText value="#{attribValue.name}" class="myDraggables" id="actualValue"/>
<p:draggable for="actualValue" revert="true" />
</p:column>
</p:dataTable>
</p:tab>`
</p:accordionPanel>
这是放置位置:
<p:dataTable value="#{testBean.subscriptions}" var="subscripList" id="subscriptions">
<p:column style="width:648px">
<script type='text/javascript'>
$(".myDroppables").droppable({
accept: '.myDraggables'
});
</script>
<f:facet name="header">
Product Subscriptions
</f:facet>
<h:outputText id="destination" value="#{subscripList.name}" class="myDroppables" />
<p:droppable for="subscriptions" datasource=":mainForm:form:attribute:attribValue">
<p:ajax process="subscriptions" listener="#{testBean.onDrop}" update="subscriptions" />
</p:droppable>
</p:column>
</p:dataTable>
答案 0 :(得分:0)
您必须手动初始化bean中的目标列表变量。
在testBean中只需替换
List subscriptions;
带
List subscriptions = new ArrayList<>();