1

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

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

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

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

在此处输入图像描述

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

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

            <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>
4

1 回答 1

1

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

于 2013-04-22T23:19:59.420 回答