我正在尝试从重复控件上的字段为字段(不在重复控件内)设置值。
重复的字段:
<xp:inputText id="inputText2" disabled="true">
<xp:this.value><![CDATA[#{viewScope.field_2[index]}]]></xp:this.value>
<xp:eventHandler event="onchange" submit="true"
refreshMode="partial" refreshId="sus">
<xp:this.action><![CDATA[#{javascript:getComponent("inputText4").setValue("1234");}]]></xp:this.action>
</xp:eventHandler>
</xp:inputText>
正如您所注意到的,目标字段位于面板内,id =“sus”。
目标字段也绑定到表单字段。
但未分配任何值。我怎样才能做到这一点?
答案 0 :(得分:3)
组件只是后面数据模型的可视化。始终绑定您的控件并追踪模型值,而不是组件。禁用的inputText无法触发值,并且在上面的代码段中您有disabled="true"
。 onchange事件无法触发。
这样可行:
<xp:inputText id="inputText2" disabled="false">
<xp:this.value><![CDATA[#{viewScope.field_2[index]}]]></xp:this.value>
<xp:eventHandler event="onchange" submit="true"
refreshMode="partial" refreshId="sus">
<xp:this.action><![CDATA[#{javascript:viewScope.someValue=42;}]]></xp:this.action>
</xp:eventHandler>
</xp:inputText>
您的目标控件如下所示:
<xp:inputText id="inputText4" value="#{viewScope.someValue}">
</xp:inputText>
如果您的目标控件绑定到其他内容(例如#{document1.test}
),那么您的代码需要更新该控件。 (document1.replaceItemValue("test",42)
)
同样有三个重要方面:
让我们知道它是怎么回事