0

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

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

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

看法:

<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。

4

1 回答 1

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>
于 2012-06-04T20:42:48.237 回答