Java 订单列表中的Primefaces面板
我想使用p:orderList和p:panel组件实现列表元素的重新排序。最初列表中有一个POJO,但即使是字符串列表也会出现问题 这是我的豆子:Java 订单列表中的Primefaces面板,java,jsf,primefaces,panel,Java,Jsf,Primefaces,Panel,我想使用p:orderList和p:panel组件实现列表元素的重新排序。最初列表中有一个POJO,但即使是字符串列表也会出现问题 这是我的豆子: public class BackingBean { private List<String> list; public void addDate() { list.add(new Date().toString()); } // Getters and setters...
public class BackingBean {
private List<String> list;
public void addDate() {
list.add(new Date().toString());
}
// Getters and setters...
}
公共类BackingBean{
私人名单;
公共无效添加日期(){
添加(新日期().toString());
}
//接球手和接球手。。。
}
我的页面来源:
<p:orderList id="videos" value="#{bean.list}" var="date" itemValue="#{date}"
controlsLocation="none">
<p:column >
<p:panel header="#{date}" toggleable="true" toggleSpeed="500">
FC Barcelona is one of only three clubs...
</p:panel>
</p:column>
</p:orderList>
巴塞罗那是仅有的三家俱乐部之一。。。
问题是,每次我切换其中一个面板时,所有面板都会最小化和最大化几次,即如果列表中有三个元素,那么所有面板都会最大化/最小化三次。我错了吗?嗯,这取决于您是否真的需要重新排序功能。如果您可以不使用它,我会尝试ui:repeat而不是p:orderList。它为每个div生成原始id,因此您一次只能切换一个面板。希望能有帮助 编辑: 我做了一个自定义的“切换器”,这样你甚至可以在p:orderList中单独切换面板
<p:orderList id="videos" value="#{yourBean.list}" var="dataItem" itemValue="#{dataItem}"
controlsLocation="none">
<p:column>
<p:panel id="togglePanel">
<f:facet name="header">
<h:outputText value="#{dataItem}" />
<p:commandButton value="+" onclick="showToggle(this)" style="float: right;"/>
<p:commandButton value="-" onclick="hideToggle(this)" style="float: right;"/>
<div style="clear: both"/>
</f:facet>
<div>
FC Barcelona is one of only three clubs...
</div>
</p:panel>
</p:column>
</p:orderList>
巴塞罗那是仅有的三家俱乐部之一。。。
还有简单的脚本:
<script type="text/javascript">
function hideToggle(param) {
jQuery(param).closest("div").next().slideUp('slow',null);
}
function showToggle(param) {
jQuery(param).closest("div").next().slideDown('slow',null);
}
</script>
函数隐藏切换(参数){
jQuery(param).closest(“div”).next().slideUp('slow',null);
}
函数showToggle(参数){
jQuery(param).closest(“div”).next().slideDown('slow',null);
}
也许有更好的解决办法,但我相信你明白了。希望有帮助。orderedList中是否支持多个带有widgetVar的面板?javascript变量“panel”似乎用于列表中的所有面板。你可以在firebug上看看。我认为@djmj是对的。为什么要指定
widgetVar
属性。您是否在javascript中使用它?即使没有widgetWar
,也会发生这种情况。我在primefaces论坛上得到了一个答案:“问题是列表中的所有面板都具有相同的id,因此切换会切换所有面板”。但是我不知道我应该用什么来代替面板