使用commandlink构造全局过滤器

时间:2013-01-04 03:08:07

标签: primefaces

好。所以我正在尝试使用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>

我删除了表的其余部分以使代码库更小。我想我搞砸了我应该设定的价值,但我不太清楚如何。任何帮助,将不胜感激!第一篇文章,所以任何清理问题的建议都表示赞赏;)

1 个答案:

答案 0 :(得分:0)

好的,所以出于某种原因(就像我想的那样),过滤器的val设置不正常。你需要在之前添加两个:出于某种原因。如果有人知道,那将是很棒的,但正确的代码是:

<p:commandLink id="globalFilter" value="A" onclick="$('#positiveRegulationForm\\:availableSpecies\\:speciesColumn_filter').val('A'),speciesPaletteVar.filter()"/>

其中 positiveRegulationForm是最重要的形式 availableSpecies是DataTable名称 speciesColumn_filter是列speciesColumn

的过滤器

真的好奇为什么你需要两个正斜杠