2012-01-05 3 views
5

조건에 따라 행의 배경색을 변경하고 싶습니다. JSF 2에서 조건에 따라 데이터 테이블 행에 색을 지정하십시오.

"entry.action"의 값 XI는 "히스토리 테이블 행 불완전"(styleclass의 이름) 값 YI 경우 것이 사용하고자 사용하려는 경우

<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> 
"역사 -table-row-error "(스타일 클래스의 이름). 다른 모든 경우에는 기본값을 사용해야합니다.

필자는 어떻게 든 현재 항목을 내 빈에 가져 와서 분석하고 styleclass의 이름을 가진 문자열을 outputText에 반환하여 색상을 변경해야한다고 생각합니다. 그러나 나는 어떻게 ... (JSF의 새로운 ...)

나 좀 도와 줄 수있어?

답변

11

<t:dataTable> 대신 rowStyleClass 속성을 사용하십시오 (rowClasses). rowStyleClassvar="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

정확한 구문 분석 오류 메시지를 언급하십시오. – BalusC

+0

rowStyleClass = "# {entry.action == 'F'? '히스토리 테이블 행 오류': (entry.action == 'Y'? '히스토리 테이블 행 오류': '') : ' '} "오류 해석 : # {entry.action =='F '? 'history-table-row-error': (entry.action == 'Y'? '히스토리 테이블 행 오류 :' ') :' '} 발생 원인 : org.apache.el.parser .ParseException - 1 행 108 열의 "": "": ""이 (가) 발생했습니다. 다음의 어느 쪽이든을 기대하고있었습니다. "}"... "." ... ""[ "..."> "..."gt "..."< "..."lt "..."> = "..."ge "..."<= ... "" "..."== "..."eq "..."! = "..."ne "..."&& "..."and "..."|| " ... "또는"... "*"... "+"... "-"... "/"... "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 및 삼항 연산자로 구현하는 방법을 이해하는 것이 었습니다. – bchetty

+2

어? OP 질문 * "조건에 따라 행의 배경색을 변경하고 싶습니다."*. 이 대답은 대답하지 않습니다. 그래서이 대답은 잘못되었습니다. 그처럼 간단합니다. 귀찮은 경우 수정하거나 삭제하십시오. 삶에 대한 잘못된 대답을 왜 상향시켜야하는지 이해할 수 없습니다. 그것은 스택 오버 플로우의 요점을 완전히 파괴 할 것입니다. – BalusC

관련 문제