微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ajax – 如何在数据表中使用PrimeFaces p:droppable?

有业务需要对项目进行分类.最好的想法似乎是将一个列表中的项目拖放到类别列表中.类别数可以变化,因此使用p:dataTable.
发送Ajax请求但不从dataTable内部调用onDrop方法.删除数据表和列并静态输出窗口时,会调用onDrop吗?

如何最好地将项目拖放到动态变化的类别中?

<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>

解决方法

在PrimeFaces中有一个 bug,当< p:droppable>嵌套在dropListener不会被调用的任何数据重复元素中.我也尝试使用Facelets重复标记< ui:repeat>但是没有调用dropListener就像拖动到< p:dataTable> .

在PrimeFaces中展示了所有拖拽,下拉示例具有静态可放置区域.
PrimeFaces ShowCase

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐