1

わかった。そこで、commandLinks を使用してグローバル フィルターを実装しようとしています。アイデアは、ユーザーが文字を入力する代わりに使用できるように、commandLinks のアルファベットを用意することです。

これまでのところ、列でフィルタリングが機能しています (commandLinks が機能したら、filterStyle none を追加します)。

chromes デバッグ ツール (ctrl-shift+i) を使用し、コマンド リンクをクリックすると、データ テーブルがリストを更新するのを確認できます。ただし、何もフィルタリングしません。

私は Primefaces ショーケースを使用してきました。このスタック オーバーフロー ポストを使用して、以下のコードをベースにしています。

 <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>

コードベースを小さくするために、テーブルの残りの部分を削除しました。設定すべき値を台無しにしていると思いますが、その方法がよくわかりません。どんな助けでも大歓迎です!最初の投稿なので、質問を整理するための提案は大歓迎です ;)

4

1 に答える 1

0

さて、何らかの理由で (私が思っていたように)、フィルターの val の設定が正しく機能していませんでした。何らかの理由で、: の前に 2 つの \ を追加する必要があります。誰かが知っていれば、それは素晴らしいことですが、正しいコードは次のとおりです。

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

ここで、positiveRegulationForm は利用可能なトップ フォームですSpecies は DataTable の名前です

なぜ2つのスラッシュが必要なのか、本当に興味があります

于 2013-01-16T04:39:43.137 に答える