Webforms + plugin jquery dataTable + ajax

169 views
Skip to first unread message

Edmilson Lani

unread,
Nov 18, 2010, 7:39:15 AM11/18/10
to dotn...@googlegroups.com
Bom dia pessoal...

É o seguinte, estou tentando usar o plugin jquery dataTable (www.datatables.net) utilizando ajax para nao ter que tazer todos meus registros do banco de dados de uma vez...

Alguém já fez isso utilizando asp.net (no meu caso webform)? Eu vi uns exemplos, tentei implementar mas sempre recebo um erro:

DataTables warning (table id = 'teste-gerenciamento'): Added data (size undefined) does not match known number of columns (7)

Meu código:

JS

$(document).ready(function () {
            '/Ajax/DadosGerenciamentoCotacao.ashx'
            $(document).ready(function () {
                $('#teste-gerenciamento').dataTable({
                    'bProcessing': true,
                    'bServerSide': true,
                    'sAjaxSource': '/Ajax/DadosGerenciamentoCotacao.ashx'
                });
            });
        });

HTML

    <table id="teste-gerenciamento">
        <thead>
            <tr>
                <th>Número</th>
                <th>Data</th>
                <th>Portos</th>
                <th>Embarcador</th>
                <th>Volume</th>
                <th>Resposta até</th>
                <th>Status</th>
            </tr>
        </thead>
    <tbody>
    </tbody>
    </table>

.NET (a parte que me retorna os dados)

            var result = new
            {
                iTotalRecords = 2,
                iTotalDisplayRecords = 2,
                aaData = Cotacoes
            };


            var serializer = new JavaScriptSerializer();
            var json = serializer.Serialize(result);
            context.Response.ContentType = "application/json";
            context.Response.Write(json);

--
Atenciosamente
Edmilson Lani

George Paoli

unread,
Nov 18, 2010, 7:46:13 AM11/18/10
to dotn...@googlegroups.com
Olá, Edmilson.

Minha sugestão é você utilizar o Ext.NET (veja este exemplo: http://examples.ext.net/#/GridPanel/ArrayGrid/Simple/) ou o ExtJs diretamente (veja este exemplo: http://dev.sencha.com/deploy/dev/examples/grid/array-grid.html).

Tem muita documentação sobre o ExtJs e a comunidade é bem ativa.

Estou usando os componentes do Ext.NET e tem me atendido perfeitamente.

abs,
George

2010/11/18 Edmilson Lani <edmils...@gmail.com>
--
==============================
Comunidade de desenvolvedores Dot Net no Brasil
".Net Br" no Google Groups: http://groups.google.com.br/group/dotnet_br/
E-mail do Grupo: dotn...@googlegroups.com
"Your Potential. Our Passion."
 
==============================
Comunidade de desenvolvedores PHP
"LISTA PHP" no Google Groups: http://groups.google.com.br/group/listaphp
E-mail do Grupo: list...@googlegroups.com

Edmilson Lani

unread,
Nov 18, 2010, 7:59:49 AM11/18/10
to dotn...@googlegroups.com
Obrigado George...

Você utiliza ele buscando os dados via ajax em cada página? Vou trabalhar com grande quantidade de dados e é inviável eu trazer tudo e paginar os dados da memoria...

[]s
--
Atenciosamente
Edmilson Lani

George Paoli

unread,
Nov 18, 2010, 8:10:37 AM11/18/10
to dotn...@googlegroups.com
Sim, Edmilson.

No Ext vc define o formato do store (JSON, XML ou Array) e ele só trafega isso pela rede.
Para retornar apenas a quantidade necessária, 10 por páginas por exemplo, basta você tratar o retorno e recuperar os itens de 10 em 10 do lado do servidor.
Usando o ExtJs  ele passa por querystring os parâmetros start e limit para vc utilizar na páginação. E na mensagem de retorno vc deve retonar o total.
Usando o Ext.NET é mais simples por ele abstrair estes controles. Da uma olhada nos exemplos lá.

Abs,

Edmilson Lani

unread,
Nov 18, 2010, 8:57:06 AM11/18/10
to dotn...@googlegroups.com
a DLL dele tem 15mb mesmo? é essa que temos que adicionar no projeto?

George Paoli

unread,
Nov 18, 2010, 9:04:45 AM11/18/10
to dotn...@googlegroups.com
Isso.

O javascript do extjs e extnet também são pesadinhos, mas carrega uma vez só.

2010/11/18 Edmilson Lani <edmils...@gmail.com>

Vinicius Quaiato

unread,
Nov 18, 2010, 9:57:53 AM11/18/10
to dotn...@googlegroups.com
Pelo erro parece que você não está retornando os dados suficientes para preencher todas as colunas :P


2010/11/18 Edmilson Lani <edmils...@gmail.com>
--

Edmilson Lani

unread,
Nov 18, 2010, 12:57:34 PM11/18/10
to dotn...@googlegroups.com
Só para registro... com a ajuda do Vinicius resolvi o problema...

Eu nao podia serializar diretamente os objetos como estava fazendo... tinha que montar um vetor com os valores e aí sim mandar serializar...

[RESOLVIDO]

Abraços
--
Atenciosamente
Edmilson Lani
Reply all
Reply to author
Forward
0 new messages