我在Grails應用程序中有一個一對多關係的兩個域:Course和Person。一門課程可能有很多人。當我查看課程的show.gsp時,它將顯示已註冊課程的所有人員名單。Grails在一對多關係中排序
我希望該列表按姓氏的字母順序排序。但是,每次刷新show.gsp時,列表的順序都會發生更改(似乎無法識別模式)。我在我的Person域中設置了一個映射,按lastName「asc」進行排序,但這沒有任何效果。
我修改了scaffolded show.gsp以顯示錶格中的名字以及其他複選框。下面是修改後的代碼:
<g:if test="${courseInstance?.persons}">
<br />
<table>
<thead>
<tr>
<th>#</th>
<g:sortableColumn property="person"
title="${message(code: 'person.lastName.label', default: 'Person')}" />
<g:sortableColumn property="paid"
title="${message(code: 'person.paid.label', default: 'Paid')}" />
<g:sortableColumn property="attended"
title="${message(code: 'person.attended.label', default: 'Attended')}" />
</tr>
</thead>
<tbody>
<g:set var="counter" value="${1}" />
<g:each in="${courseInstance.persons}" status="i" var="p">
<tr class="${(i % 2) == 0 ? 'even' : 'odd'}">
<td>
${counter}
</td>
<td class="property-value" aria-labelledby="persons-label"><g:link
controller="person" action="show" id="${p.id}">
${p?.encodeAsHTML()}
</g:link></td>
<td><g:checkBox name="paid" value="${p.paid}"
onclick="${remoteFunction(action:'togglePaid', id:p.id,
params:'\'completed=\' + this.checked')}" /></td>
<td><g:checkBox name="attended" value="${p.attended}"
onclick="${remoteFunction(action:'toggleAttended', id:p.id,
params:'\'completed=\' + this.checked')}" /></td>
</tr>
<g:set var="counter" value="${counter + 1}" />
</g:each>
</tbody>
</table>
</g:if>
有沒有我可以讓無論是在show.gsp或在默認情況下按字母順序排序列表中的域(除非是點擊一個排序的列)任何修改?
謝謝!
即使我刪除添加的自定義代碼(只需使用腳手架show.gsp)的問題仍然存在...... – littleK