在我的应用程序中,我使用全局过滤器搜索Primefaces数据表中的记录,并在同一数据表上应用了DataExporter。
当我搜索任何记录并进行导出时,它会返回给我一个完整的数据列表,而不是过滤列表。
我的开发环境是:java 6.0、Primefaces 3.2、JSF2.1、GlassFish Server 3.1.2、Netbeans 7.1.1
登记在我的dataTable和dataExporter代码下面。
我的数据表代码是:
<p:dataTable value="#{personnelController.allItems}"
emptyMessage="#{bundle.PersonnelEmpty}"
selectionMode="single"
dblClickSelect="false"
var="item"
id="tbl"
rowKey="#`enter code here`{item.id}"
sortBy="#{item.lastName}"
sortOrder="ascending"
widgetVar="itemTable"
paginator="true"
paginatorPosition="bottom"
paginatorAlwaysVisible="false"
currentPageReportTemplate="Page {currentPage} of {totalPages}"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}"
rows="10"
>
<f:facet name="header">
<p:outputPanel>
<h:outputText value="#{bundle.GlobalFilterPrompt}" />
<p:inputText id="globalFilter"
onkeyup="itemTable.filter()"
style="width:150px;"
/>
<p:watermark for="globalFilter" value="#{bundle.GlobalFilterWatermark}" />
</p:outputPanel>
</f:facet>
<p:ajax event="rowSelect" listener="#{personnelController.onRowSelectNavigate}" />
<p:column
sortBy="#{item.lastName}"
filterBy="#{item.lastName}"
filterStyle="display: none;"
>
<f:facet name="header">
<h:outputText value="#{bundle.PersonnelTitle_lastName}"/>
</f:facet>
<h:outputText value="#{item.lastName}"/>
</p:column>
<p:column
sortBy="#{item.firstName}"
filterBy="#{item.firstName}"
filterStyle="display: none;"
>
<f:facet name="header">
<h:outputText value="#{bundle.PersonnelTitle_firstName}"/>
</f:facet>
<h:outputText value="#{item.firstName}"/>
</p:column>
<p:column
sortBy="#{item.location.name}"
filterBy="#{item.location.name}"
filterStyle="display: none;"
>
<f:facet name="header">
<h:outputText value="#{bundle.PersonnelTitle_locations}"/>
</f:facet>
<h:outputText value="#{item.location.name}"/>
</p:column>
<p:column
sortBy="#{item.department.name}"
filterBy="#{item.department.name}"
filterStyle="display: none;"
>
<f:facet name="header">
<h:outputText value="#{bundle.PersonnelTitle_departments}"/>
</f:facet>
<h:outputText value="#{item.department.name}"/>
</p:column>
</p:dataTable>
我从dataTable外部导出表数据为:
<h:commandLink>
<p:graphicImage value="#{resource['images:excel.png']}" />
<p:dataExporter type="xls" target=":personnel:tbl" fileName="personnel" />
</h:commandLink>
如果我做错了什么,请建议我。
在pom中。xml:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.10.1</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.3</version>
</dependency>
并替换:
<h:commandLink>
<p:graphicImage value="#{resource['images:excel.png']}" />
<p:dataExporter type="xls" target=":personnel:tbl" fileName="personnel" />
</h:commandLink>
<h:commandLink>
<h:graphicImage value="#{resource['images:excel.png']}" />
<p:dataExporter type="xls" target=":personnel:tbl" fileName="personnel" />
</h:commandLink>
这是我的usertable示例:
<p:dataTable id="table" value="#{myBean.users}" var="usr" rowKey="#{usr.username}" widgetVar="usrwv">
<f:facet name="header">
<p:outputPanel>
<h:outputText value="Search all fields:" />
<p:inputText id="globalFilter" onkeyup="usrwv.filter()" style="width:150px" />
</p:outputPanel>
</f:facet>
<p:column headerText="Username" sortBy="#{usr.username}" filterBy="#{usr.username}">
<f:facet name="header">
Username
</f:facet>
<h:outputText value="#{usr.username}"/>
</p:column>
<p:column headerText="Role" sortBy="#{usr.role}" filterBy="#{usr.role}">
<f:facet name="header">
Role
</f:facet>
<h:outputText value="#{usr.role}"/>
</p:column>
<f:facet name="footer">
<h:commandLink>
<p:graphicImage value="/resources/images/excel.ico" title="myExcel"/>
<p:dataExporter type="csv" target="table" fileName="all_users"/>
</h:commandLink>
</f:facet>
</p:dataTable>
此外,您将导出者和数据表放在两种不同的形式中。尝试将它们放在相同的形式中。这应该行得通。
我有一个自定义的dataTable标记,我在所有视图中都使用它,它位于这里:src/main/webapp/WEB-INF/tags/custom\u dataTable。xhtml 我的问题是,如果我对一个或多个可过滤列进行过滤,并使用dataExporter进行导出,则列过滤会丢失,因此导出会忽略这些额外的过滤。我怎样才能改变这个? 这是自定义datatable标记的源: 我的Primefac
我试图理解Hibernate过滤器,我认为即使查询不是从过滤的实体开始,也可以应用过滤器,如果我只是加入它。 我的实体: 过滤器通过拦截器启用,为了安全起见,从数据库中获取参数列表。 当我执行这样的查询时: 过滤器被应用了。但是我也希望当我的查询从模块部分开始时应用过滤器: 在上述查询中,没有应用筛选器。 ModuleSect实体中的学术类为null,但我也有其他实体不为空,其中上述情况不起作用。
问题内容: 据我了解,CSS过滤器应该可以在Chrome中的任何地方使用,但是我无法使它们适用于SVG元素。 在 所有 大多数浏览器中 都 可以正常工作: 但是,这在Chrome中不起作用: 这是一个例子: …这是一个小提琴:https : //jsfiddle.net/LtffLagn/2/ 问题答案: 所有归功于@Robert Longson,他给出了答案: CSS过滤器无法应用于Chrome
问题内容: 嗨,我正在用React钩子编程一个页面,并且试图将从服务器获取的数据设置为状态。怎么它不起作用。我从服务器获取数据,但无法将其映射到状态。任何想法可能是什么问题? 来自服务器的数据 问题答案: 是async方法,因此您将无法在其下获取更新的数据。 否则您的代码是好的,如果您循环并显示它,它将反映在DOM中 运行下面的代码片段,并检查HTML和console两者,这将清除流程。
我的应用程序只需要支持一个URL。喜欢http://.../service/api.要执行的操作取决于“操作”请求参数 为了处理这个问题,我创建了以下控制器 缺少ACTION参数时将调用 /view。对于前两个请求,我配置了OAuth身份验证,后者即 /view将使用formlogin。 我已经创建了一个过滤器,在那里我检查ACTION参数,如果丢失,我将请求转发到 /view处理程序。 下面是过
问题内容: 我已经创建了一个表,并且正在使用http来加载表中的数据。因此,每次单击时,我的表数据都在变化,但是在表中看不到更新的数据。我创建了一个样本Plunker供参考。在我的项目中,当我单击“重新加载新数据”时,表中的数据已更改,但是在2-3次单击后,它没有更改。有人知道,如何解决它。 问题答案: ngTable指令有问题。仅在更改时更新。看看这个pl。我将$ scope [‘tablePa