2011-04-18 19 views
7

mam tej kwerendy:Row numeracji z p: dataTable

SELECT @rownum:[email protected]+1 'no', m.title, m.author, REPLACE(SUBSTRING_INDEX(m.content, ' ', 20), '<br>', ' '), m.viewed, m.hashid FROM book m, (SELECT @rownum:=0) r WHERE m.lang = ?1 AND m.title like CONCAT('%',?2,'%') ORDER BY m.title asc 

@rownum:[email protected]+1 część zapytania MySQL dla numeracji wynik jako Primefaces obecnie nie ma centrum, aby wyświetlić kolumnę numeracji.

Czy istnieje sposób pokazania numeracji kolumn Primefaces bez konieczności wykonywania @rownum:[email protected]+1?

Jeśli nie, czy mogę skonstruować powyższe zapytanie przy użyciu wyłącznie metody CriteriaBuilder?

Odpowiedz

38

Nie jestem do końca pewien, czy chcesz "numerację kolumn" czy "numerację kolumn". Zakładam, że pierwszy ;-)

Nie możesz użyć rowIndexVar? Dokumentacja Primefaces mówi:

rowIndexVar = Nazwa zmiennej odnoszącej się do przetwarzanego indeksu wiersza .

Działa to dla mnie:

<p:dataTable value="#{testBean.selectOptions}" rowIndexVar="rowIndex" var="item"> 
    <p:column headerText="#"> 
     #{rowIndex+1} 
    </p:column> 
    <p:column headerText="Option"> 
     #{item} 
    </p:column> 
</p:dataTable> 

+1 jest dla zaczynając od numeru 1.

UPDATE:

Ten kod daje:

enter image description here

+0

Nie, chcę, aby kolumna numerująca jak pierwszy wiersz miała 1, drugi wiersz to 2 i tak dalej. Pozwól, że wypróbuję Twój przykład powyżej. – ChuongPham

+0

@ user463053 Dodano obraz wyjściowy html. Czy to właśnie próbujesz? –

+2

Twoje rozwiązanie działa. Dzięki sterty. Teraz wiem, do czego służy funkcja rowIndexVar! ;) Jeszcze jedna rzecz do zrobienia: wystarczy przekonwertować 'SUBSTRING_INDEX' na coś bardziej uproszczonego, więc mogę użyć metody CriteriaBuilder - ponieważ nie mogłem zobaczyć z przykładów JEE 6 Tutorial, w jaki sposób można zdefiniować niestandardowy ciąg SQL SELECT dla metody CriteriaBuilder. – ChuongPham

Powiązane problemy