好。所以我正在尝试使用commandLinks实现全局过滤器。我们的想法是拥有一个commandLinks字母表,然后用户可以使用它而不是键入一个字母。
到目前为止,我已经对列进行了过滤(一旦commandLinks正常工作,就会添加filterStyle none)。
使用chromes调试工具(ctrl-shift + i),然后单击命令链接,我可以看到数据表刷新列表。但是,它不会过滤任何东西。
我一直在使用primefaces showcase,这个stack overflow post基于我的代码,如下所示:
<p:dataTable id="availableSpecies" var="species" value="#{bbWizardBean.speciesPaletteList}"
emptyMessage="Add First Species" dynamic="true"
width="120"
widgetVar="speciesPaletteVar"
scrollHeight="250" scrollRows="20" scrollable="true"
styleClass="width-fix-spcPal-ie" style="width:150px; margin-left: auto; margin-right: auto;"
filteredValue="bbWizardBean.speciesPaletteListFilter">
<f:facet name="header">
<h:outputText value="Species Palette" />
<p:commandLink id="globalFilter" value="A" onclick="$('speciesColumn_filter').val('A'),speciesPaletteVar.filter()"/>
</f:facet>
<p:column filterBy="#{species.speciesName}"
headerText="Species" style="font-size:13px;" id="speciesColumn">
<h:outputText id="dragIcon" value="#{species.speciesNameSmall}" style="font-size:11px; background-color:silver; cursor:move;"/>
<h:outputText id="dragIconTooltip" value="..." title="Full Name: #{species.speciesName}" rendered="#{species.speciesNameLength > 10}"/>
<p:tooltip for="dragIconTooltip" />
<p:draggable for="dragIcon" revert="true" />
</p:column>
我删除了表的其余部分以使代码库更小。我想我搞砸了我应该设定的价值,但我不太清楚如何。任何帮助,将不胜感激!第一篇文章,所以任何清理问题的建议都表示赞赏;)
答案 0 :(得分:0)
好的,所以出于某种原因(就像我想的那样),过滤器的val设置不正常。你需要在之前添加两个:出于某种原因。如果有人知道,那将是很棒的,但正确的代码是:
<p:commandLink id="globalFilter" value="A" onclick="$('#positiveRegulationForm\\:availableSpecies\\:speciesColumn_filter').val('A'),speciesPaletteVar.filter()"/>
其中 positiveRegulationForm是最重要的形式 availableSpecies是DataTable名称 speciesColumn_filter是列speciesColumn
的过滤器真的好奇为什么你需要两个正斜杠