계산 된 필드를 사용하여 목록 상자 값을 표시하는 방법에 대해 알고 싶습니다.xpages : 계산 필드에 onchange 이벤트가있는 목록 상자에 여러 값이 표시됩니다.
제 생각에는 목록 상자와 계산 필드가 있습니다. 목록 상자에서, 나는 onchange를 이벤트에 부분적인 업데이트를 사용하고 부분 업데이트 ID는 필드를 계산
나는 listbbox에 대한 코드와 계산 여기에 필드 게시 할 수 있습니다: 목록 상자를 들어
:
<xp:listBox id="listBox2">
<xp:selectItems>
<xp:this.value><![CDATA[#{javascript:viewScope.get("vs1");
}]]></xp:this.value>
</xp:selectItems>
<xp:eventHandler event="onchange" submit="true"
refreshMode="partial" refreshId="computedField1">
</xp:eventHandler></xp:listBox>
을
계산 된 필드 :이 부분에서는이 게시물을 읽었습니다 : How to get display text of combobox and not the alias? 어떻게 목록 상자 값을 표시하는지 알아보십시오. 내가 처음에 코드를 실행하면
function getComponentLabel(componentId) {
var select = getComponent(componentId);
var value = select.getValue();
try {
var list = select.getChildren();
if (value) {
for (var i = 0; i < list.length; i++) {
if ((typeof list[i]).indexOf("SelectItems") > -1) {
items = list[i].getValue();
for (var k = 0; k < items.length; k++) {
if (items[k].getValue() === value) {
return items[k].getLabel();
}
}
}
else if((typeof list[i]).indexOf("SelectItem") > -1) {
if (list[i].getItemValue() === value) {
return list[i].getItemLabel();
}
}
}
}
} catch (e) {
}
return value;
}
var dspValue = getComponentLabel("listBox1");//yes, it's listbox 1 not listbox2, if type listbox2, the computed field will show null (not sure why)
return "The listbox selected value(s) is: " + dspValue;
는 지금까지 내가 목록 상자의 값을 넣어 계산 된 필드는 목록 상자에서 선택한 값을 표시 할 수 있습니다. 그러나 목록 상자에 여러 값을 입력하면 계산 된 필드는 내가 입력 한 최신 값만 표시 할 수 있습니다.
나는 목록 상자에서 선택한 값을 얻기 위해 계산 된 필드에서 루프를 사용하는 것을 시도했다 :
var text="";
for (var i = 0; i < dspValue.length; i++)
{
text += dspValue[i];
}
return "you select value is: " + text;
가 그럼이 코드를 실행, 나는 오류 메시지가 dspValue가 null 말했다 얻을. 또한 for 루프없이 dspValue.length를 표시하고 동일한 오류가 발생합니다.
for 루프를 사용하는 대신 목록 상자에서 모든 값을 가져 와서 계산 된 필드에 표시 할 생각이 없습니다.
계산 된 필드를 사용하여 목록 상자에서 선택한 값을 모두 표시하는 방법은 무엇입니까? 어떤 조언을 주셔서 감사합니다.
실명을 사용하는 것이 좋습니다. 커뮤니티와의 상호 작용이 훨씬 좋은 경험이됩니다. –