Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parThibault Coudert Modifié depuis plus de 10 années
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
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.