2012-01-05 14 views
5

条件に基づいて行の背景色を変更したいと思います。JSF 2の条件に基づいてデータテーブルの行に色付けを行います。

<t:dataTable id="data" 
       styleClass="history-table" 
       headerClass="history-table-header" 
       rowClasses="history-table-row-default" 
       border="2" cellpadding="5" cellspacing="2" 
       var="entry" 
       value="#{historyBean.logEntryList}" 
       preserveDataModel="false" 
       rows="#{historyBean.history.rowCount}" 
       sortable="true"> 

      <h:column> 
       <f:facet name="header"> 
       <h:outputText value="Debug Status" /> 
       </f:facet> 
       <h:outputText value="#{entry.action}" /> 
      </h:column> 

「entry.action」の値は、値はYIが「歴史を使用するようなものであればXIは、(styleClassの名称)「履歴テーブル行不完全」を使用したい場合-table-row-error "(スタイルクラスの名前)。それ以外の場合はすべてデフォルト値を使用する必要があります。

私は何とか私の豆にエントリの現在のオブジェクトを取得し、それを分析し、スタイルクラスの名前を持つ文字列をoutputTextに戻して色を変更する必要があると思います。しかし、私はどのように...(私はJSFで新しいです...)

誰かが私を喜ばせることができますか?

答えて

11

の代わりに<t:dataTable>rowStyleClass属性を使用してください。 rowStyleClassは、var="entry"が利用可能な場合はロー単位で評価され、rowClassesの場合はテーブル単位でのみ評価されます。

<t:dataTable ... rowStyleClass="#{entry.action == 'X' ? 'history-table-row-incomplete' : (entry.action == 'Y' ? 'history-table-row-error' : 'history-table-row-default')}"> 
+1

この解析エラーを引き起こします。私はmyfaces 2.1.5を使っていると言わなければならない。私のbeanにextry.actionの値を渡してそこでそれを処理する方法はありますか? –

+0

正確な解析エラーメッセージに言及してください。 "履歴テーブルの行エラー": ''): '履歴テーブルの行エラー':(entry.action == 'Y'? '履歴テーブルの行エラー': ''): – BalusC

+0

rowStyleClass = "#{entry.action == 'F' '} "エラーの解析:#{entry.action ==' F '? 'history-table-row-error':(entry.action == 'Y'? '履歴テーブル行エラー:' '):' '} 原因: org.apache.el.parser .ParseException - 行1、列108の "": "": ""が発生しました: "}" ... " ... "" ... "gt" ... "<" ... "lt" ... "> =" ... "ge" ... "<=" ... " ... "" "..." == "..." eq "..."!= "..." ne "..." && "..."と "..." || " ... "" ... "..." ... "..." ... "..." ... "..." ... "div" ... "%" ... "mod" –

-1

あなたは以下のように、JSF EL三項演算子を使用することができます。

rowStyleClass="#{entry.action eq X ? 'history-table-row-incomplete' : (entry.action eq Y ? 'history-table-row-error' : 'default')}" 
+1

'styleClass'は'

'に適用され、' 'には適用されません。 – BalusC

+0

誰かが私の投稿を無効にしました!私は正確な '属性'を使用していないかもしれませんが、ELと三元演算子で実装する方法をOPに理解させることでした。 – bchetty

+2

? OPの質問*「条件に基づいて行の背景色を変更したい」この答えは答えません。だからこの答えは間違っています。そのような単純な。あなたが困っている場合は、修正または削除してください。なぜ私は間違った答えをupvotedする必要があります人生の理解できません。それは完全にスタックオーバーフローの点を破壊するだろう。 – BalusC

関連する問題