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()即使我手动输入类别,也无法正常工作?