我正在检查日期值的变化。 ValueChangeHandler识别日期(例如,在输入时将1/5/2014更新为DB)。但是,当我删除一个日期时,它无法被识别(即,数据库未更新为null - 我已尝试Backspace,突出显示和Del,使用空格进行改写)。然后我输入了一个新的日期(2014年2月5日),并将其更新为数据库。关于为什么这段代码不能识别我已经删除了日期的任何想法。
此致
格林
我已经用Braj建议的代码更新了这个。不幸的是,这不起作用。
final DateBox awardedDate = new DateBox();
awardedDate.setFormat(new DefaultFormat(DateTimeFormat.getFormat("dd/MM/yyyy")));
awardedDate.setValue(ymAwards.getCaAwardedDate());
awardedDate.setWidth("75px");
//Add change handler for the awarded date.
//Only a Leader or Administrator can update the date
if (accountLevel.equals("Leader") || accountLevel.equals("Administrator")) {
awardedDate.addValueChangeHandler(new ValueChangeHandler<java.util.Date>() {
int pog = 0;
public void onValueChange(ValueChangeEvent<java.util.Date> event) {
if (pog == 0) {
pog++;
Window.alert("First change hadler.");
//Check for a null date and handle it for dateBoxArchived and dateBoxPackOut
java.sql.Date sqlDateAwarded = awardedDate.getValue() == null ? null : new java.sql.Date(awardedDate.getValue().getTime());
AsyncCallback<YMAwards> callback = new YMAwardedDateHandler<YMAwards>();
rpc.updateYMAwarded(youthMemberID, returnAwID, sqlDateAwarded, callback);
}else{
pog = 0;
}
}
});
awardedDate.getTextBox().addValueChangeHandler(new ValueChangeHandler<String>() {
@Override
public void onValueChange(ValueChangeEvent<String> event) {
if (event.getValue() == null) {
Window.alert("Second change hadler.");
//Check for a null date and handle it for dateBoxArchived and dateBoxPackOut
java.sql.Date sqlDateAwarded = awardedDate.getValue() == null ? null : new java.sql.Date(awardedDate.getValue().getTime());
AsyncCallback<YMAwards> callback = new YMAwardedDateHandler<YMAwards>();
rpc.updateYMAwarded(youthMemberID, returnAwID, sqlDateAwarded, callback);
}
}
});
}
答案 0 :(得分:1)
答案 1 :(得分:0)
也尝试这个
final DateBox dateBox = new DateBox();
dateBox.getTextBox().addValueChangeHandler(new ValueChangeHandler<String>() {
@Override
public void onValueChange(ValueChangeEvent<String> event) {
if (dateBox.getValue() == null) {
System.out.println("date value is empty");
// your code here
}
}
});
输出:
date value is empty
DateBox#addValueChangeHandler()
会触发。
您可以使用TextBox#addValueChangeHandler()
检查文本框中的值。