【发布时间】:2019-06-25 19:32:57
【问题描述】:
我想通过单击命令按钮来显示或隐藏 primefaces 数据表,我有一个 java bean,我可以调用 java 函数dashboardView.displayOrHide()。我不知道如何做到这一点。
我想显示或隐藏数据表,可以通过单击按钮将其折叠或不折叠,并将数据表的状态保存在 java bean 中
我的 Primefaces 版本是 6.0.15。
我的 JSF/xhtml 代码:
<p:commandButton value="Show Or Hide" id="ajax" action="#{dashboardView.displayOrHide}" style="margin-right:20px;" styleClass="ui-priority-primary" />
<p:dataTable id="item_#{synopticLocationBean.id}" var="synopticIdBean" value="#{synopticLocationBean.synopticIdBeans}">
<p:column headerText="Famille">
<h:outputText value="#{synopticIdBean.family}" />
</p:column>
<p:column headerText="BT">
<h:outputText value="#{synopticIdBean.brNumber}"/>
</p:column>
</p:dataTable>
我的 Java 代码,但我不知道在这里做什么:
public void buttonAction() {
System.out.println("test ash retor ana");
}
目前我使用带有按钮的 javascript 函数
并使用 displayTabInformation js 函数隐藏或显示我的数据表:
function displayTabInformation(id,dataTableId){
var divDisplay = dataTableId.style.display;
if(divDisplay === ''){
dataTableId.style.setProperty('display', 'none');
}else if(divDisplay === 'none'){
dataTableId.style.setProperty('display', 'block');
}else{
if(divDisplay === 'visible'){
dataTableId.style.setProperty('display', 'none');
}else{
if(divDisplay === 'block'){
dataTableId.style.setProperty('display', 'none');
}
}
}
}
我想用 java bean 做同样的功能来保存显示或隐藏的数据库。
【问题讨论】:
-
分解您的问题。你将如何“折叠”一个普通的 html 表格?在这里做同样的事情......客户端都是html,css和javascript
-
目前我使用了一个 JS 方法来执行“dataTableId.style.setProperty('display', 'block');”,或者没有代替阻塞,但我不知道我可以如何使用java 方法的参数 id 和 java 方法内部是否显示我的 JSF/primefaces 组件。
-
请在问题中添加有关如何执行此操作的 JS 示例。这清楚地表明你至少有一些基础工作。而且我不知道您所说的 “我不知道如何将参数的 id 用于 java 方法以及在 java 方法显示内部或不使用我的 JSF/primefaces 组件。” ...总是最好在问题中编写“伪代码”以使您的问题更清楚。干杯
标签: primefaces datatable commandbutton