Jsf 全球<;p:datatable>;使用<;p:选择一个功能表>;韩元';行不通
我试图在jsf页面上的数据表上实现一个全局过滤器。 输入文本过滤器可与以下代码配合使用:Jsf 全球<;p:datatable>;使用<;p:选择一个功能表>;韩元';行不通,jsf,jakarta-ee,primefaces,filter,datatable,Jsf,Jakarta Ee,Primefaces,Filter,Datatable,我试图在jsf页面上的数据表上实现一个全局过滤器。 输入文本过滤器可与以下代码配合使用: <p:inputText id="globalFilter" onkeyup="examTable.filter();" style="width:200px" /> 但是,当我对SelectOneMenu组件尝试相同的方法时,它将不起作用 我尝试过以下代码: <p:selectOneMenu id="state" value="#{examenListBean.stateOptio
<p:inputText id="globalFilter" onkeyup="examTable.filter();" style="width:200px" />
但是,当我对SelectOneMenu组件尝试相同的方法时,它将不起作用
我尝试过以下代码:
<p:selectOneMenu id="state" value="#{examenListBean.stateOption}"onchange="examTable.filter();">
<f:selectItems value="#{examenListBean.etatExamOptions}"/>
</p:selectOneMenu>
但是没有用
这是我的p:datatable标签:
<p:dataTable id="tabexam"
paginatorPosition="bottom"
var="exam"
value="#{examenListBean.listexam}"
widgetVar="examTable"
emptyMessage="Aucun résultat n'a été trouvé avec les critères donnés"
filteredValue="#{examenListBean.filteredexams}"
paginator="true"
rows="30"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="5,10,15,30"
resizableColumns="true">
尝试在服务器端进行过滤可能:
<p:selectOneMenu id="state" value="#{examenListBean.stateOption}">
<f:selectItems value="#{examenListBean.etatExamOptions}"/>
<p:ajax event="change" process="@this" listener="#{myBean.filteringMethod}" update=":absPath:tabexam"/>
</p:selectOneMenu>
不知道您的JavaScript方法是什么样子的,可能尝试使用
并在那里更新您的表。尝试在服务器端进行过滤可能:
<p:selectOneMenu id="state" value="#{examenListBean.stateOption}">
<f:selectItems value="#{examenListBean.etatExamOptions}"/>
<p:ajax event="change" process="@this" listener="#{myBean.filteringMethod}" update=":absPath:tabexam"/>
</p:selectOneMenu>
我不知道你的JavaScript方法是什么样子的,也许可以尝试使用
更新你的表。我也遇到过同样的问题,似乎只是primefaces不允许这种类型的东西。我的最终目标是能够将“selectOneMenu”表从列中移出并放入标题中,但目前我所做的就是这样
这是由于primefaces似乎访问它的结构的方式使它们为过滤器做好准备
我所做的是创建一个id为'globalFilter'的'hidden'p:inputText字段,并使id显示为:none
然后创建了两个搜索字段(一个使用Selecomenu,另一个仅为inputText字段)。
然后使用这些类型的onchange或onkeyup函数调用MyJavaScript函数,这些函数使用jQuery将隐藏字段更新为所选的值,然后调用crpTable特性
<script type="text/javascript">
function doFilter1()
{
$("#globalFilter").val($("#globalFilter1").val());
widgetVarTableId.filter();
};
function doFilter2()
{
$("#globalFilter").val($("#globalFilter2").val());
widgetVarTableId.filter();
};
</script>
<style>
.myGlobalFilter {
display:none;
}
</style>
函数doFilter1()
{
$(“#全局过滤器”).val($(“#全局过滤器1”).val());
widgetVarTableId.filter();
};
函数doFilter2()
{
$(“#全局过滤器”).val($(“#全局过滤器2”).val());
widgetVarTableId.filter();
};
myGlobalFilter先生{
显示:无;
}
在我的f:facet name=头中我有
<p:inputText id="globalFilter" styleClass="myGlobalFilter"/>
<h:outputText value="filter one: "/>
<h:selectOneMenu id="globalFilter1" onchange="doFilter1();">
<f:selectItems value="#{formBean.filterOptions}" />
</h:selectOneMenu>
<h:outputText value="filter two: "/>
<p:inputText id="globalFilter2" onkeyup="doFilter2();">
这正是我所期望的。。然而,使用primefaces.filter()的缺点是不能将其更改为“精确”“startsWith”等,它总是“包含”而不修改PF源代码
希望这有帮助 我也遇到过同样的问题,似乎只是primefaces不允许这种事情。我的最终目标是能够将“selectOneMenu”表从列中移出并放入标题中,但目前我所做的就是这样 这是由于primefaces似乎访问它的结构的方式使它们为过滤器做好准备 我所做的是创建一个id为'globalFilter'的'hidden'p:inputText字段,并使id显示为:none 然后创建了两个搜索字段(一个使用Selecomenu,另一个仅为inputText字段)。 然后使用这些类型的onchange或onkeyup函数调用MyJavaScript函数,这些函数使用jQuery将隐藏字段更新为所选的值,然后调用crpTable特性
<script type="text/javascript">
function doFilter1()
{
$("#globalFilter").val($("#globalFilter1").val());
widgetVarTableId.filter();
};
function doFilter2()
{
$("#globalFilter").val($("#globalFilter2").val());
widgetVarTableId.filter();
};
</script>
<style>
.myGlobalFilter {
display:none;
}
</style>
函数doFilter1()
{
$(“#全局过滤器”).val($(“#全局过滤器1”).val());
widgetVarTableId.filter();
};
函数doFilter2()
{
$(“#全局过滤器”).val($(“#全局过滤器2”).val());
widgetVarTableId.filter();
};
myGlobalFilter先生{
显示:无;
}
在我的f:facet name=头中我有
<p:inputText id="globalFilter" styleClass="myGlobalFilter"/>
<h:outputText value="filter one: "/>
<h:selectOneMenu id="globalFilter1" onchange="doFilter1();">
<f:selectItems value="#{formBean.filterOptions}" />
</h:selectOneMenu>
<h:outputText value="filter two: "/>
<p:inputText id="globalFilter2" onkeyup="doFilter2();">
这正是我所期望的。。然而,使用primefaces.filter()的缺点是不能将其更改为“精确”“startsWith”等,它总是“包含”而不修改PF源代码
希望这有帮助 事实上,我正在寻找一种过滤方法,而不是对数据表进行排序,我也有服务器端过滤的工作方法,我需要的是客户端过滤,尤其是选择选项,因为我处理的是大块数据。虽然你的方法非常快,然后将类似oncomplete的javascript回调放在
标记上。在代码中实际不起作用的是什么,回调不会启动,或者JS方法不能与
一起工作<代码>也不会触发?所以问题出在JavaScript中。使用一些开发人员工具来确定您是否使用jQuery/JavaScript在前端选择了正确的ID/对象。实际上,我正在寻找一种过滤方法,而不是对数据表进行排序,而且我有服务器端过滤的工作方法,我需要的是客户端过滤,尤其是选择选项,因为我处理的是大块数据。虽然您的方法非常快速,而且非常有用。然后将类似oncomplete的javascript回调放在
标记上。代码中实际不起作用的是,回调未启动,或者您的JS方法无法使用
<代码>也不会触发?所以问题出在JavaScript中。使用一些开发人员工具来确定您是否使用jQuery/JavaScript在前端选择了正确的ID/对象。它可能与相关。它可能与相关。辉煌的解决方案谢谢您,尽管不幸的是“包含”。辉煌的解决方案谢谢您,尽管不幸的是“包含”。