2009-12-14 12 views
1

Je dispose d'un service web qui me renvoie des données, je me masse ces données et je l'utilise comme source de données pour mon radgrid (telerik). La source de données est assez grande et voudrait la paginer. J'ai trouvé quelques problèmes quand je paginate dans le côté serveurTelerik RadGrid: pagination côté client

  1. Je dois lier à nouveau la grille pour la pagination, ce qui signifie essentiellement que je dois faire un appel à WS nouveau pour obtenir les données. C'est un appel coûteux pour moi. Je préfère renoncer aux avantages de la pagination et afficher tous les résultats dans la même page, sauf pour ce serait un peu maladroit

  2. Au cours de la publication RadGrid1.Items.Count arrive à être le nombre d'éléments se paginée (25- dans mon cas), attendu que tous les éléments de la source de données ne sont pas liés. Ce n'est bien sûr pas un problème. Le vrai problème est que nous avons des cases à cocher qui sont vérifiées en fonction de certaines conditions d'affaires. Nous ajoutons ceci à notre objet de gestion/DB plus tard. Ainsi, si l'utilisateur n'a pas navigué sur toutes les pages, ces éléments «cochés» ne sont pas ajoutés car la pagination limite les «éléments» de la grille à ceux qui sont liés à cet index de page particulier.

Mes pensées: Je préférerais avoir une sorte de pagination côté client, où l'on peut cacher/contenu show que d'aller au serveur et faire un DataBind chaque fois. Bien qu'il retourne tous les résultats, l'interface utilisateur ne sera pas maladroite et la grille aurait "tous les éléments" pendant la publication

Y at-il un moyen de le faire?

Si elle était une GRIDVIEW régulière asp.net, quelqu'un peut me pointer vers un bon article qui servirait mon but

Ram

PS: qui pensent autre RadGrid est fou? (Malheureusement je n'ai pas fait ce choix)

+0

Avez-vous envisagé d'ajouter une couche de mise en cache à votre application? Vous pouvez ensuite recharger les données de la mémoire sans toucher votre service Web. –

+0

Salut Kevin, Belle suggestion. Merci. nous ne pouvons pas mettre en cache les résultats WS car il est très spécifique à la requête – ram

+2

+1 pour penser que radgrid est fou – Csharp

Répondre

-1

[Je n'ai pas d'expérience dans l'utilisation RadGrid ainsi que Telerik, cette solution peut/ne peut pas travailler pour vous]

Silverlight 3 native a support pour la pagination, vous pouvez obtenir plus d'informations à PagedCollectionView

BRIJ MOHAN a également écrit un bon tutoriel sur la façon de tirer parti de cette classe ainsi que d'autres fonctionnalités intéressantes comme le regroupement de colonnes.

http://weblogs.asp.net/brijmohan/archive/2009/08/01/silverlight-3-datagrid-columns-grouping-using-pagedcollectionview.aspx

0

Récemment lors de ma mise en œuvre du projet (qui est construit avec RadControls et RadGrid en particulier) Je trouve un exemple pratique qui montre comment obtenir des données de la grille de service Web et implémenter la pagination avec un seul appel à ce web un service. Check it out:

http://demos.telerik.com/aspnet-ajax/grid/examples/client/declarativedatabinding/defaultcs.aspx

Dick

+0

Je ne peux pas appeler le WS directement, je devrais masser les données. Et cette partie du code est dans un contrôle utilisateur qui est ajouté dynamiquement à la page.Et j'ai peur que nous ne pouvons pas avoir une méthode web dans le contrôle de l'utilisateur. http://www.dotnetmonster.com/Uwe/Forum.aspx/asp-net-web-services/5849/Web-methods-in-user-controls – ram