Intégrer un menu dans des pages asp.Net

ToToLeMalin Messages postés 8 Date d'inscription jeudi 10 juillet 2003 Statut Membre Dernière intervention 14 novembre 2005 - 8 nov. 2005 à 16:10
ToToLeMalin Messages postés 8 Date d'inscription jeudi 10 juillet 2003 Statut Membre Dernière intervention 14 novembre 2005 - 14 nov. 2005 à 19:31
Salut,



voila je me poser une question, je souhaite mettre en place des pages web aspx et un menu.



Le menu est un controle utilisateur ou une page aspx au choix et je
souhaite l'intégrer a toutes les pages aspx à la manière d'un site web.
Je pense que le choix d'un controle utilisateur est plus judicieux.

Mais voila comment intégrer ce controle a toutes mes pages sans en
recopier le code dans toutes les pages aspx ? et comment permettre
d'ouvrir les liens listés dans le menu dans la page principale ? (comme
un site web)



J'avai pensé a une page prinipale contenant deux frames avec le
controle utilisateur (menu) dans une frame et les pages aspx dans la
seconde frame, que pensez vous de cette solution et de ses
inconveniens. Avez vous de meilleurs idées a me proposer.



Merci d'avance,




^o_O^

4 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
8 nov. 2005 à 16:37
oula !!! n'utilises pas de frame par pitié :p regarde plutot ici : http://blogs.developpeur.org/cyril/articles/9089.aspx

Si je peux me permettre un petit conseil, si tu veux que ton site soit joli etc, commence par connaitre parfaitement html :)

tu verras qu'ensuite il faut mettre le menu sur toute les pages. Pour cela asp.net2 possede une nouvelle fonctionnalité : les master pages qui sont en faites des pages spéciales, ensuite coté serveur tu peux faire des pages à partir des master page, par exemple tu as une masterpage master1 et ensuite dans default tu peux te servir de master1.

Comme ca si tu fais des modifs dans master1 elles seront automatiquement fait dans default.

Pour bien comprendre, essaye de faire des master page, c'est trés simple, tu comprendras plus vite.


<HR>
Cyril - MVS - MCP ASP
0
ToToLeMalin Messages postés 8 Date d'inscription jeudi 10 juillet 2003 Statut Membre Dernière intervention 14 novembre 2005
14 nov. 2005 à 19:03
Salut,





Merci de ta réponse et du coup de main,



J'ai regardé les master page et je suis en train d'utiliser la chose
mais cela se fait en asp.net2, je recherche pour ma problématique une
solution en asp.net1 plutot.



Et donc je me demande comment peut on avoir une page qui serait diviser
en deux parties (comme un tableau à une ligne deux colonnes). dans la
partie gauche j'aurai mon menu qui est un usercontrol contenant des
liens et dans la partie droite l'ouverture de mes autres pages htlm et
apsx et usercontrol lorsque je clique sur les liens du menu.

Cela permettant de ne pas recharger le menu a chaque ouverture de page, evitant de ce fait de perdre 'l'etat' du menu.



typiquement, le menu de aspfr : lorsque je clique sur un lien
contenu dans le menu a gauche, une page s'ouvre dans la partie
principale de la fenetre et le menu ne se recharge pas.



j'avai fait ca une premiere fois avec des frames, cela repond
parfaitement a mon besoin mais je suis conscient que ce n'est pas la
methode la plus optimal

ex:



<html>

<head>

<TITLE>titre</TITLE>

</head>

<frameset cols="170,*" border="0" frameSpacing="0" frameBorder="0">

<frame name="menu" src="../Interface/Menu.aspx">

<frame name="principale" src="../Interface/Acceuil.aspx">

</frameset>

</html>



et dans la page menu, les liens sont du type :





Comment reprendre ce concept en aps.net si les frames ne sont plus a utiliser ?







^o_O^
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
14 nov. 2005 à 19:21
Si, pour chaque page il y a le menu qui se recharge mais j'ai optimisé le menu pour qu'il soit le moins lourd possible en utilisant css (qui est mis en cache) et xHTML donc la solution la plus simple est de mettre sur chaque page ton userControl ...

Sinon, en faisant du dev un peu plus poussif il y a la possibilité de reproduire le meme fonctionnement que les master pages ... mais la encore c'est relativement poussif et si tu debutes en asp.net vaut mieux eviter :s ... En gros chacune des pages dérive d'une autre page et c'est la qu'a lieu le parsing etc...


<HR>
Cyril - MVS - MCP ASP
0
ToToLeMalin Messages postés 8 Date d'inscription jeudi 10 juillet 2003 Statut Membre Dernière intervention 14 novembre 2005
14 nov. 2005 à 19:31
Merci de la réponse,





Au moins c'est clair, il y a rechargement du menu a chaque ouverture de
page, mais ca veut dire que si dans mon menu j'affiche une varible
numérique dans un textbox. cette variable initialisé a 0 dans
session_load dans le fichier global.asax est incrémenté de 1 lorsque je
clique sur un lien du menu.



Si le menu est rechargé avec chaque page, je dois passer ma variable de
page en page et la recharger dans la texte box a chaque fois.

(c'est un exemple avec une variable inutile mais si le menu contient
des datas ou un aspect visuel modifié en fonction des actions
utilisateur, la 'config' du menu est a passer de page?)



C'est un peu pour cette raison que voulai eviter de recharger le menu a chaque page en fait.



Merci du coup de main et simpa le site sur l'html c'est bien pratique et instructif






^o_O^
0
Rejoignez-nous