xpages dojo过滤选择部分更新onChange

时间:2014-03-24 12:05:17

标签: dojo xpages

我试图在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>

1 个答案:

答案 0 :(得分:2)

将值为required的Dojo属性false添加到其他djFilteringSelect控件:

  <xe:this.dojoAttributes>
     <xp:dojoAttribute
        name="required"
        value="false">
     </xp:dojoAttribute>
  </xe:this.dojoAttributes>

enter image description here

使用此额外的客户端属性,您将不再获得黄色感叹号错误。