在我的一个XPage中,我收到了一个单选按钮。如果我选择单选按钮的值,则会调用部分刷新。
在这些新字段下方有一个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>
答案 0 :(得分:1)
过滤选择由许多HTML元素组成(Firebug是你的朋友)。当您执行不包含选择本身的部分刷新时,它不会再次绘制,因此下拉列表保持在相同位置。简短的回答:包括部分刷新的下拉列表。