我的组合框,其列表项是使用dblookup计算的。我在列表的开头插入空白。
我有另一个计算字段来显示组合框的值。
当我创建新的文档计算字段编码以显示组合框的值为' null'它有效。
当我从组合框中的列表中选择项目时,计算字段会正确显示该值。
当我在组合框中返回空白并刷新文档时,计算字段不显示任何内容。当设置回空白时,组合框返回什么值类型?
以下是计算字段的代码:
var comboBox2:com.ibm.xsp.component.xp.XspSelectOneMenu = getComponent("comboBox2");
if(comboBox2.getValue()==null){
return "null";
} else {
return comboBox2.getValue();
}
if(comboBox2.getValue()==''){
return "blank";
} else {
return comboBox2.getValue();
}
if(comboBox2.getValue()==""){
return "quoted blank";
} else {
return comboBox2.getValue();
}
这是组合框的代码:
<xp:comboBox
id="comboBox2"
value="#{document1.Sample_Prod1}"
style="width:84.0px">
<xp:selectItems id="selectItems2">
<xp:this.value><![CDATA[#{javascript:var result = [];
var product = @DbLookup("" , "keywords","Product Sample List", 2)
result.push("");
for (var i = 0; i < product.length; i++) {
var eachName = product[i];
result.push(eachName);
}
return result;}]]></xp:this.value>
</xp:selectItems>
<xp:eventHandler event="onchange" submit="true" refreshMode="partial" refreshId="sampleSubmitCheck1" execMode="partial">
<xp:this.action>
<xp:executeScript>
<xp:this.script><![CDATA[#{javascript:var comboBox2:com.ibm.xsp.component.xp.XspSelectOneMenu = getComponent("comboBox2");
var sampleSubmitCheck1:com.ibm.xsp.component.xp.XspInputText = getComponent("sampleSubmitCheck1");
if(comboBox2.getValue()!==null){
sampleSubmitCheck1.setValue('Selected');
}
if(comboBox2.getValue()==null) {
sampleSubmitCheck1.setValue('');
}}]]></xp:this.script>
</xp:executeScript>
</xp:this.action></xp:eventHandler></xp:comboBox>
答案 0 :(得分:0)
以下是您可以找到的方法:
var comboBox2:com.ibm.xsp.component.xp.XspSelectOneMenu = getComponent("comboBox2");
var cb2value = comboBox2.getvalue();
return typeof cb2value;
但更好的方法是从绑定数据源获取数据,如下所示:
var cb2value = document1.getItemValueString("Sample_Prod1");
return ("".equals(cb2value)) ? "blank" : cb2value;