当组合框变为空白时,无法确定组合框的返回值类型

时间:2014-11-07 22:49:07

标签: xpages-ssjs

我的组合框,其列表项是使用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>

1 个答案:

答案 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;