Pergunta

Eu tenho dado um protótipo / maquete de uma grade escrito em HTML e JavaScript (via ExtJS) que agora eu preciso implementar dentro de uma aplicação web ASP.net. Alguém tem qualquer ponteiros sobre como passar dados para a rede (para um GroupingStore, especificamente).

Eu prefiro não ter uma proliferação de serviços web ou páginas auxiliares retornando XML / JSON por isso, se há uma maneira de callbacks uso do cliente ou métodos de página (você não pode dizer que eu não estou particularmente familiarizado com qualquer um - bingo buzzword !) ou algo assim, que seria preferível.

Por favor, não existem recomendações que eu uso jQuery, o built-in grade ASP.net, ou qualquer outro framework de UI. O uso da rede ExtJS foi mandatada pelos poderes constituídos, de modo que é a grade que estou usando, para melhor ou pior:)

Foi útil?

Solução

Aqui está uma solução de baixa tecnologia. Ele não requer o uso de serviços web ou quaisquer outras tecnologias adicionais.

Passo 1

Tenha uma página ASPX que leva um paramter, e chamado desta forma:

http://mysite.com/query.aspx?sql=select * from orders where status = 'open'

Passo 2

Na trás código, fazer algo assim

void Page_Load(object sender, EventArgs e)
{
   Response.ContentType="text/json"; 
   DataTable contents = ExecuteDataTable(Request["sql"]);
   Response.Write( JRockSerialize( contents ) );
   Response.End();
}

Você pode usar JRock para serialização de uma tabela de dados para JSON. IMHO isso dá a JSON mais limpa.

Assim que está ficando DataTable para JSON ordenada ...

AVISO: Este é obviamente um exemplo simplista. Você não deve passar SQL na cadeia de consulta, pois não é seguro (seu poderia usar consultas nomeadas e parâmetros em vez disso).

Passo 3

Em seu código ExtJS, criar uma grade com JSON armazenamento de dados, como mostrado neste Ext exemplo . Defina o url: armazenamento de dados para que de sua página query.aspx com parâmetros de Cadeia de consulta apropriados.

Você também vai precisar para definir as colunas para a grade, mais uma vez mostra o exemplo ExtJs.

Como alternativa ...

Eu estava realmente impressionado quando eu olhei para os href="http://www.coolite.com/" rel="nofollow noreferrer"> amostras recentemente. Eles são um parceiro ExtJS e proporcionar uma boa ASP.NET & ExtJS experiência. E não, eu não trabalho para eles :) Eu não tentei sua grade, mas pode ser indolor (a um preço).

Outras dicas

Eu acredito que um serviço que simplesmente retorna estruturas JSON para suas páginas é a melhor opção, bem captada e reutilizáveis ??através do aplicativo, em vez de métodos de página.

scroll top