Question

Avant de faire cela, j'ai pensé que je demanderais si c'était la meilleure façon. Chaque " Vendeur " l'objet a un " Bucket " objet. Dans mon répéteur, je dois afficher certaines propriétés de Vendor et de Bucket, ainsi que des images associées à FileSystem et liées au vendeur. J'ai pensé que la meilleure façon de le faire est de lier le répéteur à l'objet vendor, puis sur ItemDataBound, je peuplerais les images et les compartiments en fonction du vendeur lié à cet élément particulier [e.Item.ItemIndex].

Est-ce la meilleure façon de s'y prendre?

Était-ce utile?

La solution

Si l'objet Vendor ne peut contenir qu'un seul objet Bucket, il peut être approprié de tout lier dans un répéteur unique de niveau supérieur. Vous pouvez accéder au seau via une simple liaison de données au niveau supérieur sans remplacer ItemDataBound.

Parce que vous liez probablement le "Vendeur", vous avez accès à ses membres dans un identifiant de donnée si vous souhaitez le faire de cette façon:

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

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

Si l'objet Vendor peut contenir plusieurs buckets, le meilleur moyen d'y accéder consiste à utiliser ItemDataBound. À chaque itération du fournisseur, vous pouvez associer un nouveau répéteur imbriqué pour afficher les données du compartiment, ou exécuter toute fonctionnalité de répétition / agrégation dont vous avez besoin.

Selon le comportement que vous souhaitez chez votre client, vous ne pouvez restituer que les fournisseurs. Lorsque l'utilisateur clique sur le fournisseur (ou autre), vous pouvez effectuer un appel AJAX sur le serveur qui extraira les données de la réserve et les affichera de manière dynamique dans votre page. Vous voudrez peut-être essayer cette approche s'il y a un grand nombre de fournisseurs avec leurs compartiments en cours de rendu. Cela contribuerait à améliorer les performances de la base de données et le temps de rendu de la page, contrairement à sa construction côté serveur ASPX. (Mais cela nécessiterait beaucoup de données, vous devriez le faire pour des raisons de convivialité / client avant d'essayer de mériter des gains de performances.)

Autres conseils

C’est ainsi que j’ai l'habitude de procéder, de lier sur l'objet principal et de traiter les détails dans ItemDataBound.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top