FAQ ASP.NET/VB.NET

Sommaire
>
Les webforms en .NET 2.0
Comment changer de MasterPage dynamiquement?
Comment permettre à deux webparts d'échanger des informations?
Comment changer dynamiquement le thème d'une page?
Où placer le ScriptManager ?
Comment permettre l'imbrication de Master Page ?
Faut-il préférer un Panel ou un PlaceHolder ?
Comment modifier le contenu d'un contrôle d'une MasterPage depuis une Content Page ?
Comment spécifier, de manière globale, le thème d'un site ?
Quel est le cycle de vie d'une page ?
7.1. Ajax (2)
Je fais un drag and drop des composants ASP.NET AJAX et je reçois une erreur ' Sys is undefined ' au chargement de la page, pourquoi ?
Comment éviter que le panel lié à un modal popup extender ne soit visible pendant le chargement de la page?
Comment changer de MasterPage dynamiquement?
Comment permettre à deux webparts d'échanger des informations?
Comment changer dynamiquement le thème d'une page?
Où placer le ScriptManager ?
Comment permettre l'imbrication de Master Page ?
Faut-il préférer un Panel ou un PlaceHolder ?
Comment modifier le contenu d'un contrôle d'une MasterPage depuis une Content Page ?
Comment spécifier, de manière globale, le thème d'un site ?
Quel est le cycle de vie d'une page ?
7.1. Ajax (2)
Je fais un drag and drop des composants ASP.NET AJAX et je reçois une erreur ' Sys is undefined ' au chargement de la page, pourquoi ?
Comment éviter que le panel lié à un modal popup extender ne soit visible pendant le chargement de la page?
| ||
| auteur : Didier Danse | ||
Il y a plusieurs manières de définir la Master Page à utiliser. Une des techniques est de la définir dans le Page_PreInit:
Ainsi, cette valeur "surchargera" celle définie dans l'entête de la page web.
|
| ||
| auteur : Didier Danse | ||
Prenons un exemple concret pour illustrer cette réponse. Ainsi, imaginons que l'on utilise deux User Controls dans une WebPartZone:
Ensuite, il suffit d'ajouter un WebPartManager et de définir une connexion statique. Cette connexion prendra comme paramètres les ID du U.C. producteur et celui du consommateur. Ainsi, lors de l'envoi d'une information par le producteur, le consommateur est averti et peut utiliser cette même information.
|
| ||
| auteur : Ronald Vasseur | ||
Vous pouvez bien évidemment définir « en dur » le thème d'une page ASP.Net 2.0, mais il est possible et très utile de faire cela dynamiquement depuis votre code. Le thème est déterminé lors de l'évènement PreInit de la page, qui est en fait le tout premier évènement de la page. Il faut donc signaler lors de cet évènement le thème à utiliser, voici le code nécessaire à cette action :
Vous voyez que le code est très simple, il suffit de passer le nom du thème désiré à la propriété Theme de votre page, ici nous le récupérons (grâce à Page.Request()) dans l'URL de la page où il a été passé en paramètre.
|
| ||
| auteur : Didier Danse | ||
Vous pouvez placer votre ScriptManager à n'importe quel niveau, cependant afin de vous faciliter le tout, placez le dans la Master Page. Dès lors, si vous désirez modifier le comportement de votre ScriptManager pour une page (ContentPage) particulière, vous pouvez utiliser le ScriptManagerProxy. Notez également que vous avez la possibilité de mettre le ScriptManager dans chacune des Content Pages. |
| ||
| auteur : Didier Danse | ||
Bien que Visual Studio 2005 ne le permette pas en mode design, l'imbrication de Master Page est prévue dans le framework. Effectivement, l'élément permettant de définir quelle est la master page est MasterPageFile="~/masterpage.master" dans la directive "Page". Cela donnera donc :
Dès lors, il ne vous reste plus qu'à définir cette propriété au sein de votre master page et vous voilà avec des master pages imbriquées, très utiles pour faciliter la mise en page dans vos applications.
|
| ||
| auteur : Didier Danse | ||
Le Panel possède différentes propriétés de mise en forme qui n'existent pas dans le PlaceHolder. Dès lors, si vous souhaitez mettre en forme votre Panel, préférez-le au PlaceHolder. A l'inverse, si vous devez uniquement placer des éléments dans une zone, utilisez le PlaceHolder qui est légèrement plus rapide (de l'ordre du millième de seconde).
|
| ||
| auteur : Didier Danse | ||
Dans vos pages, vous avez accès à une propriété nommée Master. Celle-ci comporte, comme pour toutes les pages, une méthode FindControl à laquelle vous pouvez passer le nom du contrôle. Il ne vous reste plus qu'à le caster (sans quoi vous récupérerez un object). Il ne vous reste plus qu'à le modifier.
|
| ||
| auteur : Didier Danse | ||
ASP.NET permet de configurer pas mal d'éléments directement dans le web.config. C'est également le cas pour le thème. Pour le définir au niveau global de votre application, utilisez :
|
| ||||||||||||||||||||||||||||||||||||||||||||
| auteur : nico-pyright(c) | ||||||||||||||||||||||||||||||||||||||||||||
Le framework ASP.NET propose un modèle évolué, qui se rapproche d'un modèle événementiel comme le sont les applications client-lourd (comme les Winforms) et permettant de conserver l'état d'une page. Ainsi, dans cette approche axée sur un modèle événementiel, notre page va passer par un certain nombre d'étapes. C'est ce qu'on appelle le cycle de vie, voici les principales étapes du cycle de vie d'une page :
Initialisation d'une page par le framework ASP.NET :
Initialisation par le code utilisateur :
Validation, événements et fin de chargement
Rendu :
Déchargement :
|