Bonjour,

J'utilise une EditorGrid de la librairie (Ext GWT) que je remplie à l'aide d'un BasePagingLoader comme ceci afin de charger séquentiellement mes données
selon la position de l'ascenseur vertical de ma grille.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
loader = new BasePagingLoader<PagingLoadResult<DataModel>>(new RpcProxy<PagingLoadResult<DataModel>>() {
 
 @Override
 protected void load(Object aLoadConfig, final AsyncCallback<PagingLoadResult(<DataModel>> callback)
 { 
    config.loadConfig = (BasePagingLoadConfig) aLoadConfig;
    ConfigurationServiceAsync service = ConfigurationService.Util.getInstance();
      service.getData(config.loadConfig, new AsyncCallback<Data>() {
 
    @Override
    public void onSuccess(Data result)
    {
       BasePagingLoadResult<DataModel> loadResult = new BasePagingLoadResult<DataModel>  (config.loadConfig.getOffset(), result.getData());
       callback.onSuccess(loadResult);
        }
     });
   }
 });
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
...
  ListStore<DataModel>	gridStore = new ListStore<DataModel>(loader);
  EditorGrid grid = new EditorGrid<DataModel> (gridStore, columnModel)...
Mon problème est que lorsque j'édite une ligne de ma grille(via un double clic sur une cellule) j'obtiens la valeur d'une autre ligne car l'index transmis
ne correspond pas à celui du store.
J'ai essayé de surcharger la méthode onDoubleClick(GridEvent<DataModel> e)
afin de "réindexer" mon store convenablement comme ci-dessous mais sans succès..
Ca me semble d'ailleur très maladroit de vider le store et d'en refaire un autre...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  editGrid = new EditorGrid(<DataModel>(store, columnModel)
   {
     @Override
      protected void onDoubleClick(GridEvent<DataModel> e) {
           int rowIndex = e.getRowIndex();
           store.removeAll();
           ArrayList<DataModel> reindexList = new ArrayList<DataModel>();
           // remplissage de reindexList
           store.add(reindexList);
       }
       if (editSupport.onDoubleClick(e)) {
        return;
       }
       super.onDoubleClick(e);
      };
   };
A mon avis il n'est pas nécessaire de surcharger la méthode onDoubleClick(..) mais je ne comprend pas pourquoi, par défaut, le GridEvent ne transmet le "bon" index..
il ne transmet que celui qui est visible, i.e si je double click sur la 5ème ligne de ma grille, e.getRowIndex vaut 4..

Si quelqu'un a une idée.
Merci d'avance !