我有一个显示多个组件的循环,包括区域。所有这些组件都在 Form 组件中。
此循环的每次迭代都会显示一个Select组件,当选择组件的值发生更改时显示区域(即 VALUE_CHANGED 触发事件并更新区域。
当此循环有多个迭代时,例如2,我有2个选择组件,但是第一次或第二次迭代的选择组件的值是否已更改,仅更新了一个区域,这在第一次迭代中显示。
如果我不清楚,请改写一下。假设您有一个显示选择和区域组件的循环。每个循环显示我将调用的内容,页面部分。每个选择组件如何使用Ajax更新同一部分中的区域? (诀窍是知道区域的ID能够更新它)
答案 0 :(得分:4)
试试这个
<t:loop source="objects" value="object">
<t:select t:id="select" model="model" value="value" zone="${zoneId}"></t:select>
<t:zone t:id="zone" id="${zoneId}"></t:zone>
</t:loop>
@InjectComponent
private Zone zone;
public String getZoneId() {
return "zone_" + object.getId(); // unique identifier
}
public void onValueChangedFromSelect() {
ajaxresponseRenderer.addRender(zone); // now the correct zone will be updated
}