我使用full calendar构建了一个xpages应用程序,并且到目前为止能够在日历上显示数据。但是,只要任何提交的字段留空,它就会终止日历页面并返回上面的异常错误。如果提交的字段中没有空格,则日历会很好地打开。
我可以通过在表单上使用验证来确保填写所有字段来解决此问题,但这会限制用户,我希望避免这种情况。
以下是返回错误的代码:
try {
var calendarDate:NotesDateTime;
try{
calDate:NotesDateTime = docEv.getItemValueDateTimeArray("MeetingDate").elementAt(0);//error coming from here when it is null
}catch(e){
print("Meeting date null error: " + e.toString());
return calendarDate;
}
if(calDate != null){
var today:NotesDateTime = session.createDateTime("Today");
if (calDate != null && calDate.timeDifference(today) > 0) {
try{
var calDate:NotesDateTime = docEv.getItemValueDateTimeArray("MeetingDate").elementAt(0);
} catch(e) {
print("calendar error: " + e.toString());
}
}
}
}catch(e){
print("Calendar error: " + e.toString());
return calendarDate;
}
我也尝试使用try / catch来停止页面的查杀,但这似乎也不起作用。
我是否可以使用任何逻辑来检查var calendarDate:NotesDateTime;
是否为空,如果为空则无效?
非常感谢。
答案 0 :(得分:3)
测试文档是否有项目" MeetingDate"至少有一个要素:
var calDate:NotesDateTime;
if (!docEv.getItemValue("MeetingDate").isEmpty()) {
calDate = docEv.getItemValueDateTimeArray("MeetingDate").elementAt(0);
...
}
答案 1 :(得分:0)
我没有使用XPages但是我会认为这样的事情会起作用,因为在尝试执行elementAt方法时会发生错误:
if (docEv.getItemValueDateTimeArray("MeetingDate") == null) {
calDate:NotesDateTime = null;
} else {
calDate:NotesDateTime = docEv.getItemValueDateTimeArray("MeetingDate").elementAt(0);
}