Pergunta

Eu estou trabalhando em um projeto que eu preciso para usar o controle de Infragistics WebGrid para algumas listas de dados. Eu estou carregando os dados no lado do cliente usando JavaScript para exibição em um mapa e, em seguida, eu preciso exibir os mesmos dados dentro de vários WebGrids. Todos os dados disponíveis serão exibidos nas WebGrids, mas apenas um subconjunto dos dados (apenas aquilo que é atualmente dentro da visão) serão plotados no Mapa a qualquer momento. Desde que eu estou carregando os dados usando JavaScript / Ajax, gostaria apenas para carregá-lo uma vez, e usar o mesmo mecanismo para preencher o controle WebGrid com os dados também.

Alguém tem alguma dica / ponteiros sobre como trabalhar com o WebGrid completamente de dentro do lado do cliente código JavaScript / Ajax?

Foi útil?

Solução

O único pensamento que vem à mente é relacionada ao desempenho. Descobrimos que dinamicamente criar e preencher linhas para um UltraWebGrid foi sensivelmente mais lento do que gostaríamos de ter. (No nosso caso, estávamos nos movendo linhas de uma grade para outra e problemas de desempenho de sucesso quando o número de linhas era muito grande.)

Se eu estava fazendo algo como você descrever hoje, eu iria preencher a grade do lado do servidor, se possível, e no visor os valores relevantes no Mapa de lá.

Como um aviso adicional, usamos Infragistics 2007.1; Eu não sei se 2008.x é melhor nesta área.

Outras dicas

Os Infragistics webgrids expor um modelo de objeto muito complexo lado do cliente que você vai ser capaz de usar para preencher o lado do cliente de dados.

A primeira coisa que você vai querer fazer é obter um olhar para o CSOM completo para o controle WebGrid, você pode encontrar a versão atual doc em: http://help.infragistics.com/NetAdvantage/NET/2008.3/CLR2.0/

Para fazer um pequeno exemplo, você vai precisar para pegar um refence para sua grade (s) e, em seguida, adicionar algumas linhas e dados. Provavelmente seria mais fácil de configurar as definições de coluna para suas grades em tempo de design, em vez de tentar fazer tudo no javascript.

Primeiro: ter uma refrence para sua grade:

var grid = igtbl_getGridById('dataGridControlID');

Em seguida, adicione uma nova linha:

var newRow = grid.Rows.addNew()

Após isso é feito, você pode ciclo as colunas de sua linha para preencher os dados:

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

ou endereço de cada um a chave para preencher seus dados:

newRow.getCellFromKey(colKey).setValue(yourValue,fireEvents);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top