Domanda

Sto lavorando a un progetto che devo usare il controllo Infragistics WebGrid per alcuni elenchi di dati. Sto caricando i dati sul lato client utilizzando JavaScript per la visualizzazione su una mappa, quindi devo visualizzare gli stessi dati all'interno di più WebGrid. Tutti i dati disponibili verranno visualizzati nelle WebGrid, ma solo un sottoinsieme dei dati (solo ciò che è attualmente visibile) verrà tracciato sulla Mappa in qualsiasi momento. Dal momento che sto caricando i dati usando JavaScript / Ajax, vorrei caricarli solo una volta e usare lo stesso meccanismo per popolare anche il controllo WebGrid con i dati.

Qualcuno ha qualche consiglio / suggerimento su come lavorare completamente con WebGrid all'interno del codice JavaScript / Ajax sul lato client?

È stato utile?

Soluzione

L'unico pensiero che mi viene in mente è legato alle prestazioni. Abbiamo scoperto che la creazione e il popolamento dinamico di righe per un UltraWebGrid era notevolmente più lento di quanto avremmo voluto. (Nel nostro caso stavamo spostando le righe da una griglia all'altra e abbiamo riscontrato problemi di prestazioni quando il numero di righe era troppo elevato.)

Se stavo facendo qualcosa come quello che descrivi oggi, popolerei la griglia dal lato server, se possibile, e visualizzerei i relativi valori sulla mappa da lì.

Come disclaimer aggiunto, abbiamo utilizzato Infragistics 2007.1; Non so se il 2008.x sia migliore in questo settore.

Altri suggerimenti

Le webgrid Infragistics espongono un modello di oggetto lato client molto complesso che potrai utilizzare per popolare il tuo lato client di dati.

La prima cosa che vorrai fare è dare un'occhiata al CSOM completo per il controllo webgrid, puoi trovare la versione corrente del documento su: http://help.infragistics.com/NetAdvantage/NET/2008.3/CLR2.0/

Per fare un breve esempio, dovrai prendere un riferimento alle tue griglie e quindi aggiungere alcune righe e dati. Probabilmente sarebbe più facile impostare le definizioni delle colonne per le tue griglie in fase di progettazione, piuttosto che provare a fare tutto nel javascript.

Primo: ottieni un riferimento alla tua griglia:

var grid = igtbl_getGridById('dataGridControlID');

Quindi aggiungi una nuova riga:

var newRow = grid.Rows.addNew()

Al termine, è possibile eseguire il ciclo delle colonne della riga per riempire i dati:

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

o indirizza ciascuno di essi tramite chiave per popolare i suoi dati:

newRow.getCellFromKey(colKey).setValue(yourValue,fireEvents);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top