我正在使用primefaces 5.0
和mojarra 2.1.28
。有两个选项卡,一个包含带有排序,过滤,分页和选择选项的数据表,第二个选项卡包含所选行的详细信息。在行上双击第二个选项卡打开所选行的详细信息。
现在的问题是,当我过滤记录并选择或双击第二行选项卡时打开详细信息,当我回到第一个标签时,我的数据表重置其过滤器。同样的问题与分页。
有没有办法坚持datatable的状态?
其他信息:
答案 0 :(得分:0)
如果您没有向我们展示代码,找出您的问题非常棘手......
在我的想象中,您的视图如下所示:
2015-12-24 07:31:03,034 WARN [main] org.apache.hadoop.mapred.YarnChild:
Exception running child : java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.hive.hcatalog.mapreduce.HCatInputFormat not found
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2195)
at org.apache.hadoop.mapreduce.task.JobContextImpl.getInputFormatClass(JobContextImpl.java:174)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:749)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
Caused by: java.lang.ClassNotFoundException: Class org.apache.hive.hcatalog.mapreduce.HCatInputFormat not found
at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:2101)
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2193)
... 8 more
2015-12-24 07:31:03,037 INFO [main] org.apache.hadoop.mapred.Task: Runnning cleanup for the task
如果是这种情况,您正在更新数据表,并且不会重新应用过滤器。我建议您使用以下解决方案之一:
只需更新双击事件中第二个标签的内容:
Ubuntu 12.04 (64 bit)
Hadoop 2.7.1
Hbase 0.98.16
Hive 0.14.0
Kylin 1.1.1
更新后调用数据表上的filter方法:
<h:form name="form" />
<p:tabView id="tabs">
<p:tab title="Table Tab">
<p:datatable widgetVar="table">
<p:column></p:column>
<p:ajax event=”rowDblselect” update=”:form” />
</p:datatable>
</p:tab>
<p:tab title="Detail Row">
<p:outputPanel id="details">
<h:outputText value="#{exampleBean.rowDetail}" />
</p:outputPanel>
</p:tab>
</p:tabView>
</h:form>
我认为其中一种解决方案可以解决您的问题。