La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

ASP .NET 2.0 : Création de contrôles serveurs

Présentations similaires


Présentation au sujet: "ASP .NET 2.0 : Création de contrôles serveurs"— Transcription de la présentation:

1 ASP .NET 2.0 : Création de contrôles serveurs
Présenté par Pierre Lagarde Relation Développeurs Microsoft France ASP .NET 2.0 : Création de contrôles serveurs Level 300

2 Deux visions de l’approche composant
L’approche Contrôle Utilisateur (UserControl) Créer une pagelet réutilisable (*.ascx) dans le designer graphique  Facile à développer  Pas multi-projet L’approche Contrôle Server (CustomControl) Créer un composant .NET Web réutilisable depuis la toolbox Modèle compilé dans une dll  Multi-projet  Pas facile à développer .NET car comme windows hérite de component

3 L’approche Contrôle Server
Identifié par un tag dans le flux aspx <asp:button …> Les contrôles serveurs peuvent : Générer un flux HTML vers le client dans la méthode Render writer.RenderBeginTag(HtmlTextWriterTag.Span); Générer du script client (cas des contrôles Validators) RegisterClientScriptBlock Adapter leur rendu aux différents clients Mobile / IE / Firefox

4 La nouvelle Architecture des Contrôles
Control (1.x) WebControl (1.x) BaseDataBoundControl BaseDataList (1.x) DataBoundControl HierarchicalDataBoundControl TreeView ListControl CompositeDataBoundControl BulletedList DetailsView Menu CheckBoxList FormView DropDownList GridView ListBox RadioButtonList

5 2 : Mon premier contrôle serveur
demo 2 : Mon premier contrôle serveur <span style="font-size:XX-[Large / Small]"> Test Phrase </span>

6 Sauvegarde des propriétés
Le contrôle serveur est créé à chaque génération de page il faut donc implémenter un mécanisme de sauvegarde des données Utilisation du ViewState public bool LargeText { get object o = ViewState["LargeText"]; if (o == null) return _largeText; else return (bool)o; } set _largeText = value; ViewState["LargeText"] = _largeText;

7 Visibilité des propriétés dans l’inspecteur d’objet
Utilisation des attributs sur les propriétés [Bindable(true), Category("Appearance"), DefaultValue("true")] public bool LargeText { } [EditorBrowsable(EditorBrowsableState.Never), DefaultValue(false)] public override bool Visible

8 3 : Modifier mon premier contrôle
demo 3 : Modifier mon premier contrôle

9 Contrôle invisible Réaliser un contrôle visible par Visual Studio mais invisible dans la page HTML Utilisation des « ControlDesigner » [DesignerAttribute(typeof(InvisibleControlControlDesigner))] public class InvisibleControl : Control { } public class InvisibleControlControlDesigner : ControlDesigner public override string GetDesignTimeHtml() { return base.CreatePlaceHolderDesignTimeHtml();}

10 demo 4 : Contrôle Invisible

11 Ajout de fonctionnalités à un contrôle existant
Créer un DropDownList multicolore <html> <body> <select> <option style="color:red;font-weight:700;font-family:courier new;">One</option> <option>Two</option> <option>Three</option> </select> </body> </html>

12 Hériter du DropDownList
Ajout de propriétés Réécrire le RenderContents

13 Customiser le SmartTag pour la nouvelle DropDownList
Créer un nouveau ControlDesign public override DesignerActionListCollection ActionLists { //Return DesignerActionListCollection() }

14 5 : MyDropDownList MyDropDownListControlDesign
demo 5 : MyDropDownList MyDropDownListControlDesign

15


Télécharger ppt "ASP .NET 2.0 : Création de contrôles serveurs"

Présentations similaires


Annonces Google