Gwt 为什么文本字段中的setText不';不行?
为什么此方法不保存新选定的类别。我的密码有问题吗Gwt 为什么文本字段中的setText不';不行?,gwt,gxt,Gwt,Gxt,为什么此方法不保存新选定的类别。我的密码有问题吗 catCon = new TextField(); rowEditing.addEditor(catConfig, catCon); 这是设置catCon的代码: TextButton save = new TextButton("Save"); save.addSelectHandler(new SelectEvent.SelectHandler() { @Override public vo
catCon = new TextField();
rowEditing.addEditor(catConfig, catCon);
这是设置catCon的代码:
TextButton save = new TextButton("Save");
save.addSelectHandler(new SelectEvent.SelectHandler() {
@Override
public void onSelect(SelectEvent event) {
selectedItems = new LinkedList<Short>();
for (int i = 0; i < toCat.size(); i++) {
selectedItems.add(toCat.get(i).getIDCategory());
}
Collections.sort(selectedItems);
newSelectedItems = selectedItems.toString().replace(",", "-").replace("[", "").replace("]", "").replace(" ", "");
msg = new MessageBox("SELECTED ITEMSSSSSSSSS: " + selectedItems.size() + " " + newSelectedItems);;
msg.show();
catCon.setText(newSelectedItems);
hide();
}
});
TextButton save=新建TextButton(“save”);
save.addSelectHandler(新的SelectEvent.SelectHandler(){
@凌驾
选择公共无效(选择事件事件){
selectedItems=newlinkedlist();
对于(int i=0;i
这是保存提交的更改的地方:
rowEditing.getSaveButton().addSelectHandler(new SelectEvent.SelectHandler() {
@Override
public void onSelect(SelectEvent event) {
store.commitChanges();
service.saveUserRights(store.get(index), new AsyncCallback<Boolean>() {
@Override
public void onFailure(Throwable caught) {
msg = new MessageBox("Error", caught.getMessage());
msg.show();
}
@Override
public void onSuccess(Boolean result) {
if (result) {
msg = new MessageBox("Information", "Changes saved.");
msg.show();
service.getURListGrid(new AsyncCallback<List<UserRights>>() {
@Override
public void onFailure(Throwable caught) {
MessageBox msg = new MessageBox("Error", caught.getMessage());
msg.show();
}
@Override
public void onSuccess(List<UserRights> result) {
store = new ListStore<UserRights>(properties.idRight());
store.addAll(result);
grid.reconfigure(store, cm);
}
});
} else {
msg = new MessageBox("Error", "Failed to save changes.");
msg.show();
}
}
});
}
});
rowEditing.getSaveButton().addSelectHandler(新的SelectEvent.SelectHandler(){
@凌驾
选择公共无效(选择事件事件){
store.commitChanges();
service.saveUserRights(store.get(index),new AsyncCallback(){
@凌驾
失败时的公共无效(可丢弃){
msg=newmessagebox(“错误”,catch.getMessage());
msg.show();
}
@凌驾
成功时的公共void(布尔结果){
如果(结果){
msg=新消息框(“信息”,“已保存的更改”);
msg.show();
getURListGrid(新的AsyncCallback(){
@凌驾
失败时的公共无效(可丢弃){
MessageBox msg=newMessageBox(“错误”,catch.getMessage());
msg.show();
}
@凌驾
成功时公开作废(列表结果){
store=newliststore(properties.idRight());
store.addAll(结果);
网格。重新配置(存储,cm);
}
});
}否则{
msg=newmessagebox(“错误”,“保存更改失败”);
msg.show();
}
}
});
}
});
当我要设置catCon时,数据不会发生变化,但当我手动键入类别时,会发生变化。有人能帮我吗?为了保存当前类别,我需要获取存储的索引,并将类别设置为newSelectedItem
store.get(index).setCategories(newSelectedItems);
我希望这将有助于与我有相同问题的人。启用自动提交时会发生什么?store.setAutoCommit(true)@udeleng我会试试那行代码。感谢you@udeleng对不起,它不起作用。它不保存新选择的类别自动提交仅更新存储;它不会触发连接到按钮的事件处理程序。从你的第二段代码中,我看不出“保存”按钮的作用。第三个代码段似乎在每行更新时进行2次RPC调用。但如果更新失败怎么办?现在您有了一个允许更改的客户端,但后端没有,网格处于不一致状态。您应该在GridRowEditing中覆盖onCompleteEditing,以延迟编辑完成,直到RPC成功。请看一看行编辑网格上的GXT演示。@udeleng好的,谢谢。那么,你是想说store.commitChanges()即使我手动输入类别,也无法正常工作?