2011-04-18 79 views
7

我有這個疑問:行與對編號: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 

MySQL的查詢結果編號第Primefaces的@rownum:[email protected]+1部分目前沒有一個設施,以顯示一個編號列。

有沒有辦法顯示Primefaces列編號而不必做@rownum:[email protected]+1

如果不是,我可以使用純粹的CriteriaBuilder方法構造上述查詢嗎?

回答

38

我不太確定您是否想要「編號列」或「列編號」。我假設第一個;-)

難道你不能使用rowIndexVar? Primefaces文檔說:

rowIndexVar =指向正在處理的 rowIndex的變量名稱。

這個工作對我來說:

<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是與數字1開始

UPDATE:

此代碼生成:

enter image description here

+0

不,我想要一個像第一行的編號列是1,第二行是2等等。讓我試試你的例子。 – ChuongPham 2011-04-18 14:22:19

+0

@ user463053添加了html輸出的圖像。這是你正在嘗試的嗎? – 2011-04-18 14:29:15

+2

您的解決方案有效。謝謝你。現在我知道rowIndexVar用於什麼了! ;)還有一件事要做:我只需要將'SUBSTRING_INDEX'轉換爲更簡化的東西,這樣我就可以使用CriteriaBuilder方法 - 因爲我無法從JEE 6教程示例中看到如何定義自定義SQL SELECT字符串爲CriteriaBuilder方法。 – ChuongPham 2011-04-18 14:38:07