Question

Je travaille sur un projet pour lequel je dois utiliser le contrôle Infragistics WebGrid pour certaines listes de données. Je charge les données côté client en utilisant JavaScript pour l'affichage sur une carte, puis je dois afficher ces mêmes données dans plusieurs WebGrids. Toutes les données disponibles seront affichées dans les WebGrids, mais seul un sous-ensemble des données (uniquement celles actuellement visibles) sera tracé à tout moment sur la carte. Étant donné que je charge les données à l'aide de JavaScript / Ajax, je voudrais ne les charger qu'une seule fois et utiliser le même mécanisme pour remplir le contrôle WebGrid avec des données également.

Quelqu'un a-t-il des conseils / astuces pour travailler avec WebGrid complètement à partir du code JavaScript / Ajax côté client?

Était-ce utile?

La solution

La seule pensée qui me vienne à l’esprit est liée aux performances. Nous avons constaté que la création et le remplissage dynamiques de lignes pour un UltraWebGrid étaient sensiblement plus lents que nous l'aurions souhaité. (Dans notre cas, nous avons déplacé des lignes d'une grille à une autre et rencontré des problèmes de performances lorsque le nombre de lignes était trop important.)

Si je faisais quelque chose comme ce que vous décrivez aujourd'hui, je remplirais la grille du côté du serveur, si possible, et afficherais les valeurs pertinentes sur la carte à partir de là.

En tant que clause de non-responsabilité, nous avons utilisé Infragistics 2007.1; Je ne sais pas si 2008.x est meilleur dans ce domaine.

Autres conseils

Les grilles Web Infragistics exposent un modèle d’objet côté client très complexe que vous pourrez utiliser pour renseigner votre côté client de données.

La première chose à faire est de consulter l'intégralité du fichier CSOM du contrôle webgrid. Vous trouverez la version actuelle du document à l'adresse suivante: http://help.infragistics.com/NetAdvantage/NET/2008.3/CLR2.0/

Pour en faire un exemple, vous devez saisir une référence dans votre ou vos grille (s), puis ajouter des lignes et des données. Il serait probablement plus facile d’installer les définitions de colonne pour vos grilles au moment de la conception, plutôt que d’essayer de tout faire en javascript.

Premièrement: obtenez une référence à votre grille:

var grid = igtbl_getGridById('dataGridControlID');

Ajoutez ensuite une nouvelle ligne:

var newRow = grid.Rows.addNew()

Ensuite, vous pouvez boucler les colonnes de votre ligne pour remplir les données:

var oCols = newRow.Band.Columns;
for(var i=0; i < oCols.length; i++) {
    newRow.getCell[i].setValue(yourValue)
}

ou adressez-vous à chacun d'eux par la touche pour renseigner ses données:

newRow.getCellFromKey(colKey).setValue(yourValue,fireEvents);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top