Java 不允许将GWT addValueChangeHandler添加到RichTextBox,需要另一种方法
一旦我更改了Java 不允许将GWT addValueChangeHandler添加到RichTextBox,需要另一种方法,java,gwt,Java,Gwt,一旦我更改了RichTextBox并退出了RichTextBox(即,我不想强制用户按下“更新按钮”),我将尝试更新数据库。但是,我的代码抛出异常第一行的类型RichTextArea的addValueChangeHandler(new ValueChangeHandler(){})方法未定义 textBoxExistingDescription.addValueChangeHandler(new ValueChangeHandler<
RichTextBox
并退出了RichTextBox
(即,我不想强制用户按下“更新按钮”),我将尝试更新数据库。但是,我的代码抛出异常第一行的类型RichTextArea
的addValueChangeHandler(new ValueChangeHandler(){})方法未定义
textBoxExistingDescription.addValueChangeHandler(new ValueChangeHandler<String>() {
public void onValueChange(ValueChangeEvent<String> event) {
//If a record for this Youth Member specific detail line exists then update it else add it.
if (ymAwardDetails.getYmsdId() != null) {
AsyncCallback<Void> callback = new YMSpecificHandler<Void>(ScoutAwardView.this);
rpc.updateYMSpecific(ymAwardDetails.getYmsdId(), ymAwardDetails.getYmsdDetail(), callback);
}else{
AsyncCallback<Void> callback = new YMSpecificHandler<Void>(ScoutAwardView.this);
rpc.addYMSpecific(youthMemberID, ymAwardDetails.getAdId(), ymAwardDetails.getYmsdDetail(), callback);
}
}
});
textBoxExistingDescription.addValueChangeHandler(新的ValueChangeHandler()){
ValueChange上的公共作废(ValueChangeEvent事件){
//如果存在此青年成员特定详细信息行的记录,则更新该记录,否则添加该记录。
if(ymAwardDetails.getYmsdId()!=null){
AsyncCallback callback=新的YMSpecificHandler(ScoutAwardView.this);
updateYMSpecific(ymAwardDetails.getYmsdId(),ymAwardDetails.getYmsdDetail(),回调);
}否则{
AsyncCallback callback=新的YMSpecificHandler(ScoutAwardView.this);
addYMSpecific(youthMemberID,ymAwardDetails.getAdId(),ymAwardDetails.getYmsdDetail(),回调);
}
}
});
请问有没有其他方法可以做到这一点?看看您的需求,我认为您也可以通过实现
addBlurHandler()
而不是addValueChangeHandler()
来实现同样的目标
模糊事件在组件失去焦点时触发。有关模糊事件的更多信息,请阅读
有关GWT
BlurEvent
的信息,请阅读。首先,添加普通的ValueChangeHandler(即使它存在)将导致用户每次键入1个字符时发送数据库请求,如果您问我,这会造成大量开销
每次焦点丢失时保存备份可能会更好,但在某些情况下,使用过的备份并没有单击开箱即用,而是以某种方式关闭了选项卡,这是不愉快的
我的建议是:
@Override
public HandlerRegistration addValueChangeHandler(ValueChangeHandler<String> handler) {
return this.addHandler(handler, ValueChangeEvent.getType());
}
}
@覆盖
公共句柄注册addValueChangeHandler(ValueChangeHandler){
返回此.addHandler(handler,ValueChangeEvent.getType());
}
}
当3秒计时器结束而没有进一步按键时-触发服务调用以保存文本。我就是这样做的我已经从@RAS(感谢RAS)实现了解决方案,经过大量测试,这在没有计时器的情况下对我有效。谢谢你,波玛。