2015-02-24 77 views
0

为什么此方法不保存新选定的类别。我的代码有问题吗?为什么TextField中的setText不起作用?

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(); 
      } 
}); 

,这是其中的COMMITED改变保存:

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(); 
          } 
         } 
        }); 
       } 
      }); 

当我要设置catCon有将不会改变数据,但当我手动输入类别时,将会有变化。有人能帮助我吗?

+0

当您启用自动提交时会发生什么? store.setAutoCommit(true) – udeleng 2015-02-25 00:54:23

+0

@udeleng我会尝试这一行代码。谢谢 – 2015-02-25 01:07:52

+0

@udeleng我很抱歉,但它不起作用。它不保存新选择的类别 – 2015-02-25 01:13:23

回答

0

为了让我保存当前的类别是让店里的指标和类别设置为newSelectedItem

store.get(index).setCategories(newSelectedItems); 

我希望这将有助于谁具有相同的问题,因为我的人。