J'ai environ 20 div dans une page ASPX. À tout moment, un seul d'entre eux sera visible. J'ai besoin de décider quelle div afficher en fonction de la chaîne de requête.Meilleur moyen de basculer la visibilité Div en fonction de la chaîne de requête dans C#?
http://...?mode=<ModeName>
Le moyen facile serait de commencer par tout div est invisible, alors il suffit de mettre le QueryString dans le commutateur et écrire des cas pour tous les ModeNames possibles (ou l'obtenir dans un grand if-else la structure)
Je n'aime pas vraiment les choses de codage dur parce que si à l'avenir si j'ajoute/enlève n'importe quel div puis j'ai besoin de "se souvenir" de faire les changements nécessaires dans les endroits qui basculent divs. Je pensais créer une énumération avec tous les noms et passer cette énumération à la fonction afin que je puisse parcourir toutes les énumérations et définir la visibilité en conséquence. De cette façon, j'ai seulement besoin d'ajouter le nom div dans la déclaration enum supérieure. Mais cela n'a pas fonctionné comme ça (probablement je suis trop compliqué pour le faire fonctionner)
Est-ce que Switch Block est mon seul moyen de sortir de ça? Quelqu'un at-il une meilleure façon de faire cela? Merci d'avance!
juste une observation - en fonction du problème , il pourrait être logique d'envoyer seulement 1 DIV au lieu de tous les 20: 1) puisque vous savez quel DIV afficher en fonction de QueryString, vous pouvez gérer tout du côté serveur; 2) si vous voulez vraiment prendre une décision du côté client, vous pouvez charger AJAX à la demande. –
dans le bloc de commutation C# (côté serveur) peut être évité si les valeurs d'énumérateur font partie du modèle de nom DIV. check: Enum.GetNames(), Enum.Parse(), Enum.ToString() –
@DK: J'ai essayé votre approche, ça fonctionne comme je le voulais.Pas de switch, non sinon, j'ai maintenant juste un pour chaque itération à travers toutes les énumérations avec System.Enum.GetNames() et accéder au contrôle avec FindControl() et paramétrer la visibilité. Bien sûr, je vérifie les conditions nulles, et quelques autres exceptions qui pourraient se produire aussi bien. Merci beaucoup, pouvez-vous re-soumettre votre commentaire comme une réponse afin que je puisse marquer comme ma réponse voulue? Merci! – iamserious