Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Row numbering with p:dataTable

I have this query:

SELECT @rownum:=@rownum+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

The @rownum:=@rownum+1 part of the MySQL query for result numbering as Primefaces currently does not have a facility to display a numbering column.

Is there a way to show Primefaces column numbering without having to do @rownum:=@rownum+1?

If not, can I construct the above query using purely the CriteriaBuilder method?

like image 699
ChuongPham Avatar asked Apr 18 '11 04:04

ChuongPham


1 Answers

I am not quite sure whether you want a "numbering column" or "column numbering". I assume the first ;-)

Can't you use rowIndexVar? The Primefaces doc says:

rowIndexVar = Variable name referring to the rowIndex being processed.

This works for me:

<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>

The +1 is for starting with number 1.

UPDATE:

This code produces:

enter image description here

like image 130
Matt Handy Avatar answered Oct 22 '22 08:10

Matt Handy