在部分刷新XPage时更新Dojo过滤选择位置

时间:2013-04-22 09:43:37

标签: dojo xpages

在我的一个XPage中,我收到了一个单选按钮。如果我选择单选按钮的值,则会调用部分刷新。

  • 单选按钮的值1仅显示同一行中的新按钮
  • 值2会在单选按钮组
  • 下添加更多字段

在这些新字段下方有一个Dojo过滤选择字段,可从员工列表中进行选择。

如果我选择值1,则过滤选择正常。 如果我选择值2,过滤选择仍然从“旧”位置开始,而不识别空格,新字段需要

enter image description here

如何更新过滤选择列表的位置?部分刷新是针对页面的完整内容,但似乎不起作用。

这是无线电组的代码,它在更改时进行部分刷新:

            <xp:radioGroup id="rbgSelectEducationType" layout="pageDirection" 
        value="#{docApplication.EducationType}">
            <xp:this.readonly>
    <![CDATA[#{javascript:docApplication.getItemValueString("ZwfStepName") != "Start"}]]></xp:this.readonly>
            <xp:selectItem itemLabel="ESG Veranstaltung aus dem Katalog" 
        itemValue="ESG-Veranstaltung">
            </xp:selectItem>
            <xp:selectItem itemLabel="Externe Veranstaltung" 
        itemValue="Externe-Veranstaltung">
            </xp:selectItem>
            <xp:eventHandler event="onclick" submit="true" 
        refreshMode="partial" refreshId="wcEventDetails">
</xp:eventHandler>
            </xp:radioGroup>

以下是过滤选择下拉列表的代码:

<xe:djFilteringSelect id="Approver" value="#{docApplication.Approver}" ignoreCase="true">
<xe:this.rendered><![CDATA[#javascript:docApplication.getItemValueString("ZwfStepName")=="Start"}]]></xe:this.rendered>
<xp:selectItems id="selectItems2">

<xp:this.value><![CDATA[#{javascript:if(docApplication.isEditable()){
        getComponent("AllUsersLastFirst").getValue().split("#");
    }}]]></xp:this.value>
</xp:selectItems>
<xp:eventHandler event="onChange" submit="true" refreshMode="partial" refreshId="panelBody" id="eventHandler2">
<xp:this.action><![CDATA[#{javascript:var dbPR = new Array(applicationScope.srv, applicationScope.pathPR);
    var Approver:com.ibm.xsp.extlib.component.dojo.form.UIDojoFilteringSelect = getComponent("Approver");
    var lookup=@DbLookup(dbPR,applicationScope.xpPersonByLastNameFirstName,Approver.getValue(),2);
    lookup=@If(@IsError(lookup),"error",lookup);
    if (lookup=="error") {
        errormsg = valstrings.getString("ccEsgDocWflContentApprover.lookup1");
        globalScriptErrors.add(errormsg);
        requestScope.put("scriptErrors", globalScriptErrors);
    }   
        @SetField("NotesNameApprover", lookup);}]]></xp:this.action>
</xp:eventHandler>
</xe:djFilteringSelect>

1 个答案:

答案 0 :(得分:1)

过滤选择由许多HTML元素组成(Firebug是你的朋友)。当您执行不包含选择本身的部分刷新时,它不会再次绘制,因此下拉列表保持在相同位置。简短的回答:包括部分刷新的下拉列表。