Я новичок в Grails и попытался реализовать TreeView с помощью плагина RichUI, который показывает всех родителей с отдельными детьми в Parent.list.gsp
xml для родителей и их детей
<parents name='Parents'>
<Parent id='1' name='Parent_1'>
<Children name='Children'>
<child name='Child_2' id='2' />
<child name='Child_4' id='4' />
<child name='Child_1' id='3' />
<child name='Child_3' id='1' />
</Children>
</Parent>
<Parent id='2' name='Parent_2'>
<Children name='Children'>
<child name='Child_1' id='8' />
<child name='Child_2' id='7' />
<child name='Child_4' id='6' />
<child name='Child_3' id='5' />
</Children>
</Parent>
</parents>
Класс родительского домена
class Parent {
String name
static hasMany = [children:Child]
}
Класс дочернего домена
class Child {
String name
Parent parent
static belongsTo = [parent:Parent]
}
Родительский контроллер
def list = {
def writer = new StringWriter()
def xml = new MarkupBuilder(writer)
xml.parents(name: "Parents"){
Parent.list().each {
Parent parentt = it
Parent( id:parentt.id,name:parentt.name) {
Children(name:'Children'){
parentt.children.each {
Child childd = it
child(name:childd.name,id:childd.id)
}
}
}
}
}
if(!params.max)params.max=10
["data":writer.toString(),parentInstanceList: Parent.list(params), parentInstanceTotal: Parent.count()]
}
Parent.list.gsp
<head>
<resource:treeView/> ...</head>
<body>
<table>
<thead>
<tr>
<g:sortableColumn property="id" title="${message(code: 'parent.id.label', default: 'Id')}" />
<g:sortableColumn property="name" title="${message(code: 'parent.name.label', default: 'Name')}" />
<g:sortableColumn property="relationship" title="${message(code: 'parent.relationhsip.label', default: 'Relationship')}" />
</tr>
</thead>
<tbody>
<g:each in="${parentInstanceList}" status="i" var="parentInstance">
<tr class="${(i % 2) == 0 ? 'odd' : 'even'}">
<td><g:link action="show" id="${parentInstance.id}">${fieldValue(bean: parentInstance, field: "id")}</g:link></td>
<td>${fieldValue(bean: parentInstance, field: "name")}</td>
<td><richui:treeView xml="${data}" /></td>
</tr>
</g:each>
</tbody>
</table>
</body>
Проблема
В настоящее время в представлении списка каждая родительская запись содержит список всех родителей и их детей в столбце отношений
Представление родительского списка Снимок экрана текст ссылки
Вопрос
как я могу зачислить всех детей только для каждого родителя вместо того, чтобы зачислять всех родителей со своими детьми в каждую запись для родителей?
заранее спасибо
Рехман