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); } }); } });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
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)...
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...
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..
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); }; };
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 !
Partager