2009-03-03 9 views
3

J'ai une page qui est utilisée pour afficher de nombreux formulaires que l'utilisateur doit remplir et obtenir des rapports générés. Chacune de ces formes est dans son propre contrôle ASP: Panel afin que je puisse basculer la visibilité du formulaire (de sorte que seuls ceux avec les autorisations appropriées accèdent aux rapports auxquels ils sont autorisés). Le client a maintenant demandé une "table des matières" comme zone sur la page avec des liens hypertexte pointant vers chacun des formulaires (de sorte qu'ils n'ont pas à passer du temps à faire défiler la page pour trouver le formulaire de rapport particulier qu'ils veulent). Ceci est facile à accomplir en utilisant les étiquettes standard <a href="#Area"> et <a id="Area">. Ce que je recherche maintenant est un moyen qui me permettrait de cacher les liens des rapports auxquels l'utilisateur n'a pas accès.Quelle est la meilleure façon d'utiliser les liens et les ancres pour faire basculer la visibilité dans ASP.NET?

Je pensais d'abord utiliser le contrôle ASP: LinkButton, mais je ne veux pas que des postbacks se produisent en cliquant sur les liens (ce qui serait très inutile). Existe-t-il d'autres méthodes que je pourrais utiliser pour atteindre le même objectif? Je cherche quelque chose qui me permettrait de basculer la visibilité du lien correspondant en même temps que je permute la visibilité des panneaux contenant les formulaires de rapport (fait maintenant du code-behind).

Remarque: L'utilisation VB comme langue

Répondre

3

Si vous utilisez des contrôles de lien, vous pouvez simplement afficher ou masquer les bases de liaison sur la visibilité de son groupe connexe.

Link1.Visible = Panel1.Visible 
+0

Je pense que je vais finir par faire un facepalm sérieux ici parce que j'oublie constamment qu'il y a juste un contrôle ASP: HyperLink régulier. – TheTXI

+0

LOL. Cela arrive aux meilleurs d'entre nous. –

0

J'étais d'abord penser à l'aide de l'ASP: contrôle LinkButton, mais je ne veux pas postbacks se produire de cliquer sur les liens (ce serait très inutile)

Je suis en désaccord. Vous parlez de redessiner la majeure partie de la page chaque fois qu'un lien est cliqué, ce qui rend une publication complète appropriée d'un point de vue technique. En outre, les utilisateurs sont conditionnés à attendre un aller-retour sur le serveur lorsqu'ils cliquent sur des liens. C'est ce que fait normalement un hyperlien. C'est donc également approprié du point de vue de l'expérience utilisateur.

+0

Joel: Je n'aurais pas besoin d'aller-retour. La page est seulement dessinée une fois (quand ils entrent en premier). A la première arrivée de la page, toutes les pièces du formulaire auxquelles elles ont accès sont dessinées. Tous les liens devraient faire est de les déposer plus loin le long de la page à l'ancre appropriée. – TheTXI

+0

Ensuite, les balises d'ancrage normales seraient suffisantes. J'avais l'impression qu'un seul panneau était montré à la fois. Si tel était le cas, vous voudriez revenir sur le serveur à la demande plutôt que d'essayer de tout rendre à l'avance. –

+0

@Joel: Avant que le client change d'avis, je n'affichais que les formulaires d'une seule catégorie au moment où ils ouvraient un plus grand panneau. Malheureusement, le client a décidé qu'il voulait que tout ce qui pouvait être vu soit vu à un, ce qui a conduit à cette demande de style table des matières. – TheTXI