문제

가변 수의 열과 데이터 스크롤러가있는 데이터 테이블이 있습니다. 서버 측 정렬을 활성화하려면 어떻게해야합니까? 열 헤더를 클릭하는 사용자가 발사하는 것을 선호합니다.

<rich:datascroller for="instanceList" actionListener="#{pageDataModel.pageChange}"/>
<rich:dataTable id="instanceList" rows="10" value="#{pageDataModel}"
                var="fieldValues" rowKeyVar="rowKey">
  <rich:columns value="#{pageDataModel.columnNames}" var="column" index="idx">
    <f:facet name="header">
      <h:outputText value="#{column}"/>
    </f:facet>          
    <h:outputText value="#{classFieldValues[idx]}" />
  </rich:columns>
</rich:dataTable>

나는 이미 콩에 정렬을 실행하는 방법이 있습니다.

public void sort(int column)
도움이 되었습니까?

해결책

나는 수동으로 그것을하게되었다. 헤더 텍스트 태그에 지원 태그를 추가합니다.

<h:outputText value="#{column}">
  <a4j:support event="onclick" action="#{pageDataModel.sort(idx)}"
               eventsQueue="instancesQueue"
               reRender="instanceList,instanceListScroller"/>
</h:outputText>

오름차순/내림차순 화살표를 얻기 위해 CSS 클래스를 추가했습니다.

<h:outputText value="#{column}" styleClass="#{pageDataModel.getOrderClass(idx)}" >
  <a4j:support event="onclick" action="#{pageDataModel.sort(idx)}"
               eventsQueue="instancesQueue"
               reRender="instanceList,instanceListScroller"/>
</h:outputText>

다른 팁

이 솔루션에는 매우 우아한 솔루션이 있습니다.

http://livedemo.exadel.com/richfaces-demo/richfaces/sortingfeature.jsf?tab=ex-usage

이 데모는 태그 사용을 피합니다.

데이터 모드는 "수정 가능한"인터페이스를 구현해야합니다.

데이터 가능은 그것을 호출합니다 modify() 서버 사이드 정렬 및 필터링을 수행하는 메소드.

"Rich : Columns"의 "Sortby"속성을 살펴보십시오. 아마도 그것이 당신이 찾고있는 것일 수도 있습니다.Richfaces 참조

목록을 검색 할 때 collection.sort ()를 사용할 수 없습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top