Grails - 选择绑定到对象ID和远程字段的框

时间:2012-06-04 20:12:08

标签: ajax grails

遇到一个越来越令人沮丧的奇怪问题

场景:我有一个域对象列表,每个域对象都有一个附加到它的g:select,由远程字段呈现。

如何将状态变量或personInstance ID绑定到选择框,以便在使用renderField时更新testDiv_(数字)

查看:

<g:each in="${listOfPeople}" status="i" var="personInstance">
<td>
    Text: <g:remoteField action="getResults" controller="person" id="" update="testDiv_${personInstance.id}" paramName="search" name="getResults" value="" />
    <g:each in ="${personInstance?.choices}" var="choice" status="x">
        <li>${choice}</li>
    </g:each>
</td>
<td>
    <g:render template="renderThisTemplate"></g:render>
</td>
</g:each>

模板:

<div id="testDiv_${personInstance.id}" class="testDiv_${personInstance.id}">
    <g:select id="aChoice" name="aChoice.id" from="${allChoices}" optionKey="id" value="" />
    <g:actionSubmit action="addChoice" value="Add"/>
</div>

修改

我知道远程调用(ajax)正在传递testDiv_(number)的更新。问题在于模板ID并将该值分配给模板div。

1 个答案:

答案 0 :(得分:0)

将来任何人都需要这个答案。显然你不能在模板中引用g:each中的实例变量(personInstance)。

所以我用它的代码替换了g:render,它起作用了:

<g:each in="${listOfPeople}" status="i" var="personInstance">
<td>
    Text: <g:remoteField action="getResults" controller="person" id="" update="testDiv_${personInstance.id}" paramName="search" name="getResults" value="" />
    <g:each in ="${personInstance?.choices}" var="choice" status="x">
        <li>${choice}</li>
    </g:each>
</td>
<td>
<div id="testDiv_${personInstance.id}" class="testDiv_${personInstance.id}">
    <g:select id="aChoice" name="aChoice.id" from="${allChoices}" optionKey="id" value="" />
    <g:actionSubmit action="addChoice" value="Add"/>
</div>
</td>
</g:each>