我试图使用日期选择器创建一个MV日期字段,我能够得到的最接近的是使用日期选择器在viewScope中存储日期然后有一个按钮来添加日期到现有的MV Date字段。它有效(但有点),但似乎是一种非常尴尬的方式。做了一些搜索,找不到更好的东西。我存储值的字段必须是可编辑的,以便在需要时可以删除值,但根本不能平滑。 有什么想法吗?
2015年8月21日编辑 参与保罗的答案和解决方案的一部分,但我在数据输入方面遇到了一些问题。请参阅下面的代码 - 因为它工作正常并在viewScope.vsDates中存储日期列表如果删除//并添加到行viewScope.vsNames = tArray; //注释掉这一行,并在tArray.push(addDate)行运行相同的进程,并显示错误消息"添加日期错误调用方法' push(java.util.Date)& #39;在类型'日期[JavaScript对象]'"的对象上 因此,一旦我从WFSMainDoc.getValue(" ExpPayDate")中检索了值,数据类型已经改变但不确定如何绕过该部分。
<xp:panel id="panelAddDates">
Additional Display Dates :
<xp:table>
<xp:tr>
<xp:td valign="top">
<xp:inputText id="AddDate" value="#{viewScope.vsAddDate}">
<xp:dateTimeHelper id="dateTimeHelper3"></xp:dateTimeHelper>
<xp:this.converter>
<xp:convertDateTime type="date" dateStyle="medium">
</xp:convertDateTime>
</xp:this.converter>
</xp:inputText>
</xp:td>
<xp:td valign="top">
<xp:button value="Add to list" id="button2">
<xp:eventHandler event="onclick" submit="true"
refreshMode="partial" refreshId="panelAddDates">
<xp:this.action><![CDATA[#{javascript:try{
print("Start Transfer date");
var addDate:NotesDateTime = viewScope.vsAddDate;
print("Got addDate " + addDate);
//var expPayDate = WFSMainDoc.getValue("ExpPayDate");
var expPayDate = viewScope.vsDates;
if (addDate != null){
if (expPayDate == null || expPayDate == ""){
print("expPayDate is null")
var tArray:Array = new Array;
tArray.push(addDate);
//WFSMainDoc.setValue("ExpPayDate" , tArray)
viewScope.vsDates = tArray
print("ExpPayDate in WFSMainDoc = " + WFSMainDoc.getValue("ExpPayDate"))
print("ExpPayDate in viewscope = " + viewScope.vsDates)
}else{
var tArray:Array = new Array;
//tArray = WFSMainDoc.getValue("ExpPayDate");
tArray = viewScope.vsDates;
print("Got tArray = " + tArray.toString());
tArray.push(addDate);
//WFSMainDoc.setValue("ExpPayDate" , tArray);
viewScope.vsNames = tArray; //comment out this line
//print("ExpPayDate in WFSMainDoc = " + WFSMainDoc.getValue("ExpPayDate"));
print("ExpPayDate in viewScope = " + viewScope.vsDates);
}
viewScope.remove("vsAddDate")
print("Done")
}
}catch(e){
print("Error in Add Date " + e.toString())
}}]]></xp:this.action>
</xp:eventHandler>
</xp:button>
</xp:td>
<xp:td valign="top">
<xe:djextListTextBox id="djextListTextBox1"
value="#{WFSMainDoc.ExpPayDate}" multipleSeparator=";">
</xe:djextListTextBox>
</xp:td>
</xp:tr>
</xp:table>
</xp:panel><!-- panelAddDates -->
答案 0 :(得分:0)
绑定到具有onBlur事件的requestScope变量的普通DatePicker如何将字段添加到数据源的字段,刷新相关组件(参见下一句)?然后将数据源的字段绑定到Dojo列表文本框(记住将其设置为多值),以便允许用户删除值,但避免必须处理多个值的验证?
它应该提供一个非常优雅的解决方案,唯一可感知的问题是它使得更改单个日期值变得更加困难。
答案 1 :(得分:0)
您可以将字段的值拆分为多个临时单值字段吗?
答案 2 :(得分:0)