6
votes

Eval et itemDatabound ou Rowdatabound événement pour afficher des données, que l'on vaut mieux?

Quelle méthode est meilleure (performance-wise) si j'ai une databoundControl tel que GridView, Repeater et / ou Datalamiste et j'utilise la méthode suivante pour afficher les données: xxx

ou la manipulation de la ItemDatabound événement ou rowdatabound comme: xxx

Je préfère le second pour la raison de la lisibilité du code, mais pour la raison de la performance, sont-ils les mêmes (ou sont-ils même la même chose)?


0 commentaires

3 Réponses :


2
votes

eval pourrait être plus rapide (dépend de la situatiuon, car il est également en retard et utilise la réflexion), mais via le databound-événement, il est plus lisible et plus preuves futures.


1 commentaires

Actuellement seulement ce que Google me donne: groups.google.com/group/... . * & pli = 1 et msdn.microsoft.com/en-us/library/ms178366.aspx



5
votes

Je préfère aussi la deuxième version. Il est plus facile de déboguer et de séparation de HTML & Code à mon avis.

Selon ce plus ancien doc, Améliorer les performances et l'évolutivité des applications .NET , il est plus efficace (mentionné à la page 297).


2 commentaires

+1: La facilité de débogage scelle la transaction pour moi. Je n'ai jamais aimé avoir à refacturer ou à déboguer le code de quelqu'un d'autre où tout était lié à Markup. Eh bien, d'accord, je reçois du plaisir du plaisir de l'effort de refactorisation depuis que je déchirure tout ce que ce chiffre :)


Un autre avantage est la possibilité de manipuler les données avant de le mettre sur la page. Cela peut être fait de manière .val, mais cela peut devenir vraiment désordonné.



0
votes

Je pense que chacun est utile dans des situations. Le moyen d'évaluation est un moyen rapide et facile de faire quelque chose de simple si peu de logique est nécessaire. Mais, je l'ai vu abusé par des programmeurs inexpérimentés.

J'ai récemment pris le développement d'un projet où ils utilisaient un répéteur. Ils faisaient quelque chose comme ce qui suit: xxx

ceci était juste douloureux de regarder. Il semblait que les développeurs ont juste maintenu sur l'ajout de plus de champs et appellent la même méthode pour vérifier si le champ devrait montrer ou non. Quelque chose comme cela pourrait facilement être traité dans l'itemDatabound et plus facilement d'entretenir. Et vous devriez toujours programmer avec l'attente que votre code devra être modifié / ajouté ultérieurement.


0 commentaires