1

次の簡単なテスト ページがあります。

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core">
    <h:head>
        <title>Test page</title>
    </h:head>
    <h:body>
        <div id="container">
            <h:form>
                <p:dataTable id="unusedTable" var="c" value="#{couponBean.unusedCoupons}"
                                 paginator="true" rows="5">

                    <p:column headerText="#{l10n.id}" sortBy="#{c.id}">
                        <h:outputText value="#{c.id}" />  
                    </p:column> 

                    <p:column headerText="#{l10n.name}" sortBy="#{c.name}" >
                        <h:outputText value="#{c.name}" /> 
                    </p:column>

                </p:dataTable>
            </h:form>
        </div>
    </h:body>
</html>

PrimeFaces v3.4.2 または v3.5 を使用してアプリをデプロイすると、次の奇妙な動作が見られます。

  • 元は: ソート前
  • 並べ替え後: ソート後

ご覧のとおり、最初はテーブルの左側に並べ替えアイコンが表示されていました。列を並べ替えようとすると、元のテーブルの 1 列目に並べ替えられたテーブルが生成されます。

PrimeFaces v3.3.1 を使用してアプリを再デプロイしようとしましたが、すべてが完全に機能します。

この問題に対処する方法を教えていただければ幸いです。

よろしくお願いします、

ジェームズ・トラン

4

3 に答える 3

1

データテーブルにrowKey属性を追加してみてください。rowKey = "#{c.id}"

于 2013-03-08T16:37:58.277 に答える
1

ただのアイデア-クラスはunusedCoupons何ですか?並べ替え可能ですか?そうでない場合(またはそうである場合でも)。ArrayListにアイテムを追加してみてくださいfilteredValue=。これはフィルタリングに必要であり(一時的にフィルタリングされたデータを保存する場所を作成するため)、並べ替えにも使用できます。

追加情報

p:dataTableソートを使用してprimefaces3.4++に取り組んでいます。私が見る違いは、私が使用するヘッダーテキストを定義することです。

<p:column sortBy="#{c.id}">
    <f:facet name="header">
        <h:outputText value="#{l10n.id}" />   
    </f:facet>
    <h:outputText value="#{c.id}" />
</p:column>

あなたの代わりにheaderText=。

また、すべての列にがid割り当てられています。それ以外は同じで(さらにフィルタリングもあります)、問題なく動作します。

于 2013-03-08T16:38:19.937 に答える
0

プロジェクトが突然破損しました。なぜそれが起こったのか分かりません。しかし、新しいプロジェクトを作成してすべてのファイルをコピーした後、PrimeFaces v3.4+++ での並べ替えは正常に機能するようになりました。

于 2013-03-11T16:08:01.263 に答える