Question

Je soutiens une application qui utilise runat="server" dans tous les sens pour afficher / masquer les lignes du tableau.

Par exemple, dans des endroits où il y a des DropDownLists à charge, la ligne avec le ddl de l'enfant sera caché jusqu'à ce qu'une valeur nous choisie dans la ddl mère.

Est-ce une mauvaise pratique? Y at-il une meilleure façon de le faire?

Était-ce utile?

La solution

J'utilise à tout moment runat="server" je en ai besoin. Je pense donc que vous pouvez l'utiliser aussi. : -)

Autres conseils

Je pense que ce pratique absolument terrible. tout ce que vous ne avez pas besoin d'abord de faire le voyage vers le serveur pour cacher et afficher les contrôles, à moins que vous avez besoin de nouvelles données.

En second lieu, tout cadre de javascript décent vous permettra de masquer les commandes de spectacle basé sur l'ID du contrôle, le nom de la classe, ou quel que soit sélecteur CSS. De plus en utilisant un poste javascript / arriver à un gestionnaire générique vous donnera les données dont vous avez besoin sans publication.

Je suggère d'utiliser JQuery, ou une autre alternative.

Cela dépend de combien vous souciez de la performance. Tout ce qui est marqué avec runat = « server » passe par plus de traitement que les étiquettes secondaires que client.

Personnellement, je les ai utilisé auparavant. Surtout dans la situation où une cellule de table ou d'une ligne de table se fonde sur les données du serveur. Vous pouvez utiliser Javascript ou JQuery avec un champ caché mais vous avez encore de frapper le serveur pour le champ caché, il n'achète pas beaucoup.

Il est pas mal à utiliser runat = "server" avec des contrôles HTML standard. Souvent, vous trouverez l'utilisation des espaces réservés pour montrer et cacher le contenu sur les pages, ou dans ASP.NET MVC vous pouvez voir l'utilisation de blocs de code en ligne tels que <% ...%> dans les vues. Sur son propre et non en considération d'autres aspects de la conception, il est ni bon ni mauvais.

C'est ce que je fais pour cacher la ligne contenant d'autres contrôles serveur. Les autres options sont d'utiliser un asp: panneau ou un autre récipient, mais qui ajoutera plus HTML sans gain

.

Je ne pense pas que ce soit nécessairement une mauvaise pratique. Je l'ai fait la même chose beaucoup de fois. Je pense qu'il est principalement préférence personnelle.

Pas du tout. ASP.NET prend en charge de prendre une balise html exécuter sur le côté serveur. Votre alternative consiste à envelopper l'étiquette dans une Panel, et se cacher ou montrer. Si vous n'êtes pas à la recherche de la fonctionnalité supplémentaire ou si vous voulez contrôler la sortie vous-même, ce qui rend une balise html exécutée sur le serveur est pas un problème.

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