Pergunta

Eu sei que o asp.net repetidor esquentar têm um modelo de objeto do lado do cliente, e estamos preso com a melhoria do desempenho de muitas páginas que têm repetidor / gridview com a funcionalidade de adicionar linhas a eles pelo código do lado do servidor.

Temos usado updatepanels para ajaxify a funcionalidade adicionando as linhas para o repetidor / gridview, mas o tempo que leva para a viagem de servidor e renderização de volta no navegador não é aceitável.

Existe alguma maneira em que isto pode ser feito no clientside para melhorar o desempenho de adicionar linhas para o repetidor / gridview. Estamos usando Asp.net 2.0

Foi útil?

Solução 2

Eu descobri que o controle Repeater não tem um DOM que pode ser usado para fazer operações lado do cliente como a adição de linhas e outras coisas, a única maneira mais fácil (devido a algumas restrições) que eu tinha era usar o controle GridView vez e, em seguida, usar o seu DOM e é isso que eu finalmente fez.

Outras dicas

UpdatePanels ainda executar um postback de página inteira, em seguida, basta atualizar qualquer conteúdo que está dentro do painel. É aí que a sua desaceleração está vindo.

Como para usar AJAX para acelerar as coisas, você vai querer usar as chamadas AJAX diretos ao pedido apenas os dados que você precisa. Você pode fazer isso com ASP.NET AJAX.

No manipulador de eventos page_load, inscreva a sua AJAX. (VB.NET)

Ajax.Utility.RegisterTypeForAJAX(GetType(ThisPageClass))

Em seguida, crie uma função que será acessível por AJAX, assim:

<Ajax.AjaxMethod()> _
Public Function GetNewRows() As String
    ''//do stuff
    Return jsonObj
End Function

Em seguida, no lado do cliente, você pode chamá-lo assim:

ThisPageClass.GetNewRows(someCallbackFunction);

function someCallbackFunction(result) {
    var json = ParseJSON(result.value);
    for(var i=0; i<json.length; i++) {
        // do whatever
    }
}

Você apenas tem que ligar os buracos!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top