다음은 라디오 버튼 그룹 선택에 따라 값을 새로 고쳐야하는 목록 상자 컨트롤입니다. 목록 상자는 범위 변수 배열을 소스로 사용합니다. 그래서 radiobutton을 클릭하면 목록 상자 값을 변경하려고합니다. 첫 번째/두 번째 클릭 후 작동하며 목록 상자를 새로 고치지 않으면 다시 작동합니다. 내가 도대체 뭘 잘못하고있는 겁니까?xPages 라디오 버튼 그룹 onchange 이벤트가 작동하지 않습니다.
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:this.beforePageLoad><![CDATA[#{javascript:viewScope.MYARRAY = new Array();
viewScope.MYARRAY.push(["NAME1", "ID1"]);
viewScope.MYARRAY.push(["NAME2", "ID3"]);
viewScope.MYARRAY.push(["NAME3", "ID4"]);
viewScope.MYARRAY.push(["NAME4", "ID5"]);}]]>
</xp:this.beforePageLoad>
<xp:radioGroup id="radioGroupSortBy" defaultValue="0">
<xp:selectItem itemLabel="by Name" itemValue="0"></xp:selectItem>
<xp:selectItem itemLabel="by Id" itemValue="1"></xp:selectItem>
<xp:eventHandler event="onchange" submit="true"
refreshMode="partial" refreshId="listBox1">
</xp:eventHandler>
<xp:eventHandler event="onclick" submit="true"
refreshMode="partial" refreshId="listBox1">
</xp:eventHandler>
</xp:radioGroup>
<xp:listBox id="listBox1" style="width:390.0px;height:166.0px">
<xp:selectItems>
<xp:this.value><![CDATA[#{javascript:var arr = new Array();
for(var i=0; i<viewScope.MYARRAY.length; i++){
if(getComponent("radioGroupSortBy").getValue()==0){
arr.push(viewScope.MYARRAY[i][0] + " - " + viewScope.MYARRAY[i][1]);
} else {
arr.push(viewScope.MYARRAY[i][1] + " - " + viewScope.MYARRAY[i][0]);
}
}
return arr.sort();}]]>
</xp:this.value>
</xp:selectItems>
</xp:listBox>
</xp:view>