2009-03-06 3 views
1

Je préfère généralement ajouter des contrôles dynamiquement, comme les contrôles HTML et table génériques, à la page ASPX, plutôt que de les ajouter dans la page ASPX et de définir les propriétés dynamiquement.Dans ASP.net est-il préférable d'utiliser les contrôles serveur dans la page ASPX ou de les créer dynamiquement dans le code derrière?

Quelle approche est considérée comme «meilleure pratique»?

L'utilisation de commandes html génériques dynamiquement est une meilleure pratique que la sortie de chaînes html formatées vers un fichier asp: literal?

Répondre

1

Les conserver dans le fichier .aspx
Les ajouter dynamiquement conduit à l'affichage des problèmes d'état et doit être ajouté dans chaque pack de publication. Je suis tombé sur ceci lors de la construction d'une application de formulaires générée par l'utilisateur. J'ai cassé et utilisé la propriété de visibilité des contrôles comme un travail autour. Cela dit, si vous supprimez l'état d'affichage et que vous revenez de votre application, il se peut que cela ne vous pose aucun problème.

http://aspnet.4guysfromrolla.com/articles/092904-1.aspx

+0

Vous obtenez des problèmes d'état d'affichage si vous 1) ne mettez pas ajouter à la page au bon point dans le cycle de vie et 2) vous utilisez l'abomination appelé état d'affichage en premier lieu;) – AnthonyWJones

+0

Gestion du cycle de vie pour les contrôles dynamiques est une douleur, aussi bien. Cela ne signifie pas qu'ils ne sont pas utiles, mais seulement avec modération. –

+0

Aucun argument ici. :) –

1

Comme dans les deux approches que vous retrouvez avec un ensemble de code qui ajoute des contrôles et attribue des valeurs à leurs propriétés alors la meilleure pratique est l'approche qui est la plus lisible. En raison d'une logique de décision complexe, il peut être préférable de tout faire vous-même pour une disposition de contrôle assez statique où seules les propriétés nécessitant une modification de placer le contrôle dans l'ASPX seraient plus directes.

Questions connexes