Bonjour,
En essayant de rendre ma datasource Rest dynamique afin de créer les colonnes (champs) suivant le contenu de cette DS, j'obtiens l'erreur
Voici le code de ma DataSource
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Fields cannot be added to a DataSource after the underlying component has been created
Voici le code de ma classe utilisant cette datasource
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
19
20
21
22
23
24
25
26
27
28 public class ViewDataSource2 extends RestDataSource { @Override protected Object transformRequest(DSRequest dsRequest) { return super.transformRequest(dsRequest); } @Override protected void transformResponse(DSResponse response, DSRequest request, Object data) { super.transformResponse(response, request, data); String toto = XMLTools.selectString(data, "@name"); toto = "pouet : " + toto; DataSourceTextField phoneField = new DataSourceTextField("name", "Phone"); phoneField.setValueXPath("@name"); System.out.println("getFields : " + getFields()); ArrayList<DataSourceField> list = new ArrayList<DataSourceField>(); for (int i = 0 ; i < getFields().length ;i++) { list.add(getFields()[i]); } list.add(phoneField); setFields(list.toArray(new DataSourceField[list.size()])); }
J'ai posté ça sur le forum de smartgwt mais je n'ai eu aucune réponse pour l'instant.
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 ViewDataSource2 dataSource = new ViewDataSource2(); dataSource.setDataFormat(DSDataFormat.XML); dataSource.setRecordXPath("//wky:column"); dataSource.setDataURL("/helloworld/workeyapirestproxy?url=http://localhost:8080/workey-j2ee-api/View/1&login=test1&password=test"); final ListGrid countryGrid = new ListGrid(); countryGrid.setWidth100(); countryGrid.setHeight100(); countryGrid.setDataSource(dataSource); countryGrid.setAutoFetchData(true); ....
A priori mon besoin d'avoir une datasource avec des champs dynamiques semble compliqué à réaliser ...![]()
J'ai tenté avec une définition directe de Record[] sur l'objet countryGrid ceci dit dans ce cas les filtres ne fonctionnent pas c'est pour celà que je me suis rabatu sur les datasource qui est la méthode recommandé mais qui semble assez inflexible pour la définition de colonnes dynamiques. Si vous avez la moindre solution je suis preneur
Blured.
Partager