我试图在dojo filteringselect控件(" From_Name")的服务器onChange事件上对编辑框(" Room")进行部分更新的XPage。 因此,我使用带有计算值的简单修改字段操作:
nm = getComponent("From_Name").value;
@DbLookup("names.nsf", "Full Name", nm, 10);
onChange事件还对" Room"进行部分更新。元件。
问题是表单上还有几个过滤选择控件,当我尝试进行部分更新以查找地址簿以获取此人的房间号时,它给了我xpage上其他过滤选择的黄色感叹号错误。如果首先填写页面上的所有其他过滤选择控件,则部分更新有效。当From_Name被更改时,如何解决此问题并更新Room字段?
我的控制代码:
<xe:djFilteringSelect id="From_Name" value="#{document1.From_Name}"
readOnly="# {javascript:!document1.isNewNote()}">
<xe:this.defaultValue><![CDATA[#{javascript:
@Name("[CN]", @UserName())}]]>
</xe:this.defaultValue>
<xp:selectItems>
<xp:this.value><![CDATA[#{javascript:
db = new Array("SERVER", "names.nsf");
@Unique(@DbColumn(db, "Full Name", 1))
}]]></xp:this.value>
</xp:selectItems>
<xp:eventHandler event="onChange" submit="true"
refreshMode="partial" refreshId="Room">
<xe:this.action>
<xp:modifyField name="Room">
<xp:this.value><![CDATA[#{javascript:
nm = getComponent("From_Name").value;
@DbLookup("names.nsf", "Full Name", nm, 10);
}]]></xp:this.value>
</xp:modifyField>
</xe:this.action>
</xp:eventHandler>
</xe:djFilteringSelect>
答案 0 :(得分:2)
将值为required
的Dojo属性false
添加到其他djFilteringSelect控件:
<xe:this.dojoAttributes>
<xp:dojoAttribute
name="required"
value="false">
</xp:dojoAttribute>
</xe:this.dojoAttributes>
使用此额外的客户端属性,您将不再获得黄色感叹号错误。