2008-10-21 8 views
3

On m'a donné un prototype/maquette d'une grille écrit en html et javascript (via ExtJS) que je dois maintenant mettre en œuvre au sein d'une application Web ASP.net. Quelqu'un at-il des pointeurs sur la façon de transmettre des données à la grille (à un GroupingStore, en particulier). Je préfèrerais ne pas avoir une prolifération de services web ou de pages d'aide renvoyant XML/JSON, donc s'il y a un moyen d'utiliser les callbacks ou méthodes de page (Ne peux-tu dire que je ne suis pas particulièrement familier avec - buzzword bingo!) ou tel quel, cela serait préférable.données retour de ASP.net à une grille ExtJS

S'il vous plaît, pas de recommandations que j'utilise jQuery, la grille ASP.net intégrée, ou tout autre cadre de l'assurance-chômage. L'utilisation de la grille ExtJS a été mandatée par les pouvoirs en place, donc c'est la grille que j'utilise, pour le meilleur ou pour le pire :)

Répondre

1

est ici une solution à faible technologie. Il ne nécessite pas l'utilisation de services Web ou d'autres technologies supplémentaires.

Étape 1

Avoir une page ASPX qui prend un paramter, et invoqua comme ceci:

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

Étape 2

Dans le code derrière, quelque chose comme ça

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

Vous pouvez utiliser JRock pour sérialiser une table de données au format JSON. IMHO cela donne le JSON le plus propre.

Alors que devient DataTable à JSON triés ...

AVERTISSEMENT: Ceci est évidemment un exemple simpliste. Vous ne devez pas passer SQL sur la chaîne de requête car elle n'est pas sécurisée (vous pouvez utiliser des requêtes et des paramètres nommés à la place).

Étape 3

Dans votre code ExtJS, créez une grille avec Json datastore comme le montre cette Ext example. Définissez le magasin de données url: sur celui de votre page query.aspx avec les paramètres de chaîne de requête appropriés.

Vous aurez également besoin de définir les colonnes pour la grille, encore une fois dans l'exemple ExtJs.

Ou ...

J'ai été vraiment impressionné quand je regardais la Coolite samples récemment. Ils sont un partenaire ExtJS et fournissent une bonne expérience ASP.NET & ExtJS. Et non, je ne travaille pas pour eux :) Je n'ai pas essayé leur grille, mais elle pourrait être indolore (à un prix).

+10

Beurk. Vous devriez marquer votre AVERTISSEMENT en rouge, en gras et en clignotant. Jamais, JAMAIS, _NEVER_ n'a une page qui vous permet de faire "sql = select * à partir des commandes où status = 'open'"! Ne fais pas ça! Je suis sérieux!C'est comme si vous étiez en train de mettre un signe "Viens ici et pirate-moi, copie ma base de données et efface toutes mes données!" – BlaM

+1

Juste d'accord avec BlaM. Jamais-jamais faire ça. Ecrire un service Web, obtenir les résultats en JSON. C'est très facile. –

+1

En effet. Consultez http://thedailywtf.com/Articles/Oklahoma-Leaks-Tens-of-Thousands-of-Social-Security-Numbers,-Other-Sensitive-Data.aspx pour une bonne raison pourquoi – MPritchard

3

Je crois qu'un service qui renvoie simplement des structures json pour vos pages est la meilleure option , bien abstrait et réutilisable à travers l'application plutôt que des méthodes de page.