Я новичок в Граалей и пытался реализовать TreeView с помощью RichUI плагин, который показывает все родители с отдельными детьми в Parent.list.gspКак привлечь детей указанного Родитель в TreeView Colum (таблица)
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>
Проблема
В настоящее время в списке, каждая запись Родитель имеет список всех родителей и их детей в колонке отношения
Список Родитель вид Снимок link text
Вопрос
как Могу ли я зачислить всех детей только для каждого родителя вместо того, чтобы привлекать всех родителей к своим детям в каждой родительской записи?
заранее спасибо
Rehman
Спасибо за ответ. Я изменил оба parent.list.gsp и parentController, как это было предложено в вашем ответе. Но этот подход сгенерировал NullPointerException [http-8080-1] ERROR richui.TreeViewTagLib - Анализ ошибок xml java.lang.NullPointerException \t at java.io.StringReader. (StringReader.java:33) \t в groovy.util.XmlSlurper.parseText (XmlSlurper.java:215) я пытался отладить parentController и закончилась без подсказки. Есть ли у вас какие-либо идеи, как я могу получить deliever/получить правильные результаты? –
Rehman
Можете ли вы опубликовать недавно измененное действие контроллера и код gsp? –
Я не знаю, как правильно отформатировать код в функции «Добавить комментарий», поэтому я загрузил pdf-файл, и вы можете посмотреть в документе http://pdfcast.org/pdf/source-code. если вы не в состоянии понять следующий код – Rehman