2011-08-23 4 views
2

La grille des commandes contient une sous-grille pour les détails de la commande. Normalement, je le fais en implémentant l'événement RowDataBound. mais je pense que c'est une mauvaise idée d'aller chercher les détails de la commande dans la base de données pour chaque rangée de commandes. Y a-t-il un meilleur moyen?Affichage des détails dans la sous-grille

Merci

+0

Si vous voulez des exemples, vous devez fournir votre code pertinent actuel comme point de départ pour les répondants. – pseudocoder

Répondre

0

En ce qui « mauvaise idée », je suppose que vous parlez du point de vue de la performance. À mon avis, le scénario que vous décrivez n'est pas nécessairement une mauvaise idée, en fonction des attentes de performance de votre application. La méthode que vous suggérez est la plus facile à mettre en œuvre que je puisse penser, et pourrait être le meilleur moyen si votre page ne sera pas touchée très souvent. Cela dit, je peux penser à deux autres façons d'aborder cette question.

1) Joignez-vous les détails de votre commande au niveau DB, et rendent la table manuellement à l'aide d'un répéteur, en ajoutant des lignes extérieures que lorsque les principaux changements d'enregistrement de la commande. Cette méthode ne nécessiterait qu'un seul déplacement dans la base de données pour chaque rendu de page, mais nécessite plus de codage pour la présentation.

2) Pre-fetch tous les détails de votre commande à la page charge dans un DataTable ou d'une collection et charger vos données à partir de là sur votre RowDataBound gridview extérieur. Cette méthode réduirait également les déplacements dans la base de données à deux (un pour les commandes, un pour les détails de la commande) mais ne nécessiterait pas autant de codage de présentation.

Questions connexes