Xpages 基于组合框选择的日期控件计算显示格式
我试图根据组合框选择更改日期/时间控件的显示格式。我想这很简单 我将js if语句与getComponent一起使用,而不是datasource.getValue,因为我认为它会在提交之前获取值。我收到一个组件为空的错误 有人能解释为什么我在这里得到null,但在一个带有getcomponent的computedField中,值显示为空吗Xpages 基于组合框选择的日期控件计算显示格式,xpages,Xpages,我试图根据组合框选择更改日期/时间控件的显示格式。我想这很简单 我将js if语句与getComponent一起使用,而不是datasource.getValue,因为我认为它会在提交之前获取值。我收到一个组件为空的错误 有人能解释为什么我在这里得到null,但在一个带有getcomponent的computedField中,值显示为空吗 if (getComponent('comboBox1').getValue()==0) {'both'} else {'date'} 转
if (getComponent('comboBox1').getValue()==0)
{'both'}
else
{'date'}
转换器的类型是在页面加载期间计算的,在此期间,不可能使用getComponent方法访问组件。此外,不可能以这种方式重新计算转换器的类型。事件如果使用页面加载/动态技巧,则不会重新计算转换器的类型 但您可以在部分刷新中更改转换器的类型:
<xp:comboBox id="comboBox1">
<xp:selectItem itemLabel="One" itemValue="1"></xp:selectItem>
<xp:selectItem itemLabel="Null" itemValue="0"></xp:selectItem>
<xp:eventHandler event="onchange" submit="true" refreshMode="partial" refreshId="inputText1">
<xp:this.action><![CDATA[#{javascript:
var cmp:com.ibm.xsp.component.xp.XspInputText = getComponent("inputText1");
var converter:com.ibm.xsp.convert.DateTimeConverter = cmp.getConverter();
var value = getComponent("comboBox1").getValue();
if( value == 0) {
converter.setType("both");
}else{
converter.setType("date");
}
}]]>
</xp:this.action>
</xp:eventHandler>
</xp:comboBox>
在本例中,日期字段为InputExt1,如下所示:
<xp:inputText id="inputText1">
<xp:this.converter>
<xp:convertDateTime type="time" />
</xp:this.converter>
<xp:dateTimeHelper />
</xp:inputText>