2008-09-20 6 views
1

Avant de faire cela, j'ai pensé que je demanderais si c'était la meilleure façon. Chaque objet "Vendor" a un objet "Bucket". Dans mon répéteur, j'ai besoin d'afficher certaines propriétés du fournisseur et certaines de Bucket, ainsi que des images remplies par FileSystem qui sont liées au fournisseur. J'ai pensé que la meilleure façon de le faire est de lier le répéteur avec l'objet vendeur, puis sur ItemDataBound je remplirais les images et les compartiments en fonction du fournisseur qui est lié à ces éléments particuliers [e.Item.ItemIndex].J'ai besoin de remplir un répéteur avec des données pseudo-connexes

Est-ce la meilleure façon de procéder? Merci.

Répondre

2

Si l'objet Fournisseur ne peut contenir qu'un seul objet Bucket, il peut être approprié de le lier dans un seul répéteur de niveau supérieur. Vous pouvez accéder au Bucket par simple liaison de données tout au niveau supérieur sans surcharger ItemDataBound.

Parce que vous êtes le plus contraignant probablement le, vous avez « Vendor » l'accès aux membres de dans un DataBind si vous voulez le faire de cette façon:

<%# DataBinder.Eval (Container.DataItem, "Bucket.Property") %> 

Vous voulez faire la ItemDataBound si vous devez "traiter quelque chose" à chaque itération de la liaison et nécessite un accès détaillé à chaque objet fournisseur pour la prise de décision.

Si l'objet Fournisseur peut contenir plusieurs compartiments, le meilleur moyen d'y accéder est ItemDataBound. À chaque itération du fournisseur, vous pouvez lier un nouveau répéteur imbriqué pour afficher les données du compartiment, ou effectuer la fonctionnalité de répétition/agrégation dont vous avez besoin. En fonction de la manière dont vous voulez que votre client se comporte, vous pouvez uniquement rendre les fournisseurs. Lorsque l'utilisateur clique sur le fournisseur (ou quelque chose d'autre), vous pouvez effectuer un appel AJAX sur le serveur qui récupèrera les données du compartiment et le rendra dynamiquement dans votre page. Vous pouvez essayer cette approche s'il y a un grand nombre de fournisseurs avec leurs buckets rendus. Cela aiderait les performances de la base de données, et le temps de rendu de la page contrairement à la construction de tout sur le côté serveur ASPX. (Mais cela devrait être beaucoup de données, vous devriez le faire pour des raisons de convivialité/client avant d'essayer de mériter des gains de performance.)

2

C'est comme ça que je le fais habituellement, je lie sur l'objet principal et je traite les détails dans ItemDataBound.

+0

Quelle serait la meilleure façon de gérer l'appel ajax si vous alliez afficher uniquement vendeurs et les seaux apparaissent quand un fournisseur a été cliqué? un panneau de mise à jour dans votre itemtemplate et liant un répéteur imbriqué dans l'événement itemcommand? –

Questions connexes