Rappels Questions : [email protected] [email protected] Présentations : .
ASP.NET 2.0 : Création de contrôles serveurs Présenté par Pierre Lagarde [email protected]...
-
Upload
thibault-coudert -
Category
Documents
-
view
105 -
download
0
Transcript of ASP.NET 2.0 : Création de contrôles serveurs Présenté par Pierre Lagarde [email protected]...
![Page 1: ASP.NET 2.0 : Création de contrôles serveurs Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs Microsoft France Level 300.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9dbd497959293b8e00f8/html5/thumbnails/1.jpg)
ASP .NET 2.0 : Création de contrôles serveursASP .NET 2.0 : Création de contrôles serveurs
Présenté par Pierre Lagarde
[email protected] Développeurs
Microsoft France
Level 300Level 300
![Page 2: ASP.NET 2.0 : Création de contrôles serveurs Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs Microsoft France Level 300.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9dbd497959293b8e00f8/html5/thumbnails/2.jpg)
Deux visions de l’approche composantDeux visions de l’approche composant
L’approche Contrôle Utilisateur (UserControl)L’approche Contrôle Utilisateur (UserControl)Créer une pagelet réutilisable (*.ascx) dans le Créer une pagelet réutilisable (*.ascx) dans le designer graphiquedesigner graphique
Facile à développerFacile à développer
Pas multi-projetPas multi-projet
L’approche Contrôle Server (CustomControl)L’approche Contrôle Server (CustomControl)Créer un composant .NET Web réutilisable depuis Créer un composant .NET Web réutilisable depuis la toolboxla toolbox
Modèle compilé dans une dllModèle compilé dans une dll Multi-projetMulti-projet
Pas facile à développerPas facile à développer
![Page 3: ASP.NET 2.0 : Création de contrôles serveurs Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs Microsoft France Level 300.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9dbd497959293b8e00f8/html5/thumbnails/3.jpg)
Identifié par un tag dans le flux aspxIdentifié par un tag dans le flux aspx<asp:button …><asp:button …>
Les contrôles serveurs peuvent :Les contrôles serveurs peuvent :Générer un flux HTML vers le client dans la Générer un flux HTML vers le client dans la méthode Renderméthode Render
writer.RenderBeginTag(HtmlTextWriterTag.Span);writer.RenderBeginTag(HtmlTextWriterTag.Span);
Générer du script client (cas des contrôles Générer du script client (cas des contrôles Validators)Validators)
RegisterClientScriptBlockRegisterClientScriptBlock
Adapter leur rendu aux différents clientsAdapter leur rendu aux différents clientsMobile / IE / FirefoxMobile / IE / Firefox
L’approche Contrôle Server L’approche Contrôle Server
![Page 4: ASP.NET 2.0 : Création de contrôles serveurs Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs Microsoft France Level 300.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9dbd497959293b8e00f8/html5/thumbnails/4.jpg)
La nouvelle Architecture des ContrôlesLa nouvelle Architecture des Contrôles
BaseDataBoundControl
DataBoundControl HierarchicalDataBoundControl
TreeView
Menu
ListControl CompositeDataBoundControl
BulletedList
CheckBoxList
DropDownList
ListBox
RadioButtonList
DetailsView
FormView
GridView
WebControl (1.x)
BaseDataList (1.x)
Control (1.x)
![Page 5: ASP.NET 2.0 : Création de contrôles serveurs Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs Microsoft France Level 300.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9dbd497959293b8e00f8/html5/thumbnails/5.jpg)
2 : Mon premier contrôle serveur2 : Mon premier contrôle serveur
demodemo
<span style="font-size:XX-[Large / Small]">Test Phrase
</span>
![Page 6: ASP.NET 2.0 : Création de contrôles serveurs Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs Microsoft France Level 300.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9dbd497959293b8e00f8/html5/thumbnails/6.jpg)
Sauvegarde des propriétésSauvegarde des propriétésLe contrôle serveur est créé à chaque génération de Le contrôle serveur est créé à chaque génération de page il faut donc implémenter un mécanisme de page il faut donc implémenter un mécanisme de sauvegarde des donnéessauvegarde des données
Utilisation du ViewStateUtilisation 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; }}
![Page 7: ASP.NET 2.0 : Création de contrôles serveurs Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs Microsoft France Level 300.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9dbd497959293b8e00f8/html5/thumbnails/7.jpg)
Visibilité des propriétés dans l’inspecteur d’objetVisibilité des propriétés dans l’inspecteur d’objet
Utilisation des attributs sur les Utilisation des attributs sur les propriétéspropriétés
[Bindable(true), Category("Appearance"), DefaultValue("true")]public bool LargeText{ …}
[EditorBrowsable(EditorBrowsableState.Never), DefaultValue(false)]public override bool Visible{ …}
![Page 8: ASP.NET 2.0 : Création de contrôles serveurs Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs Microsoft France Level 300.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9dbd497959293b8e00f8/html5/thumbnails/8.jpg)
3 : Modifier mon premier contrôle3 : Modifier mon premier contrôle
demodemo
![Page 9: ASP.NET 2.0 : Création de contrôles serveurs Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs Microsoft France Level 300.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9dbd497959293b8e00f8/html5/thumbnails/9.jpg)
Contrôle invisibleContrôle invisible
Réaliser un contrôle visible par Visual Réaliser un contrôle visible par Visual Studio mais invisible dans la page Studio mais invisible dans la page HTMLHTML
Utilisation des « Utilisation des « ControlDesignerControlDesigner » »[DesignerAttribute(typeof(InvisibleControlControlDesigner))]public class InvisibleControl : Control{
…}public class InvisibleControlControlDesigner : ControlDesigner {
public override string GetDesignTimeHtml() {return base.CreatePlaceHolderDesignTimeHtml();}
}
![Page 10: ASP.NET 2.0 : Création de contrôles serveurs Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs Microsoft France Level 300.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9dbd497959293b8e00f8/html5/thumbnails/10.jpg)
4 : Contrôle Invisible4 : Contrôle Invisible
demodemo
![Page 11: ASP.NET 2.0 : Création de contrôles serveurs Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs Microsoft France Level 300.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9dbd497959293b8e00f8/html5/thumbnails/11.jpg)
Ajout de fonctionnalités à un contrôle existantAjout de fonctionnalités à un contrôle existant
Créer un DropDownList multicoloreCré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>
![Page 12: ASP.NET 2.0 : Création de contrôles serveurs Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs Microsoft France Level 300.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9dbd497959293b8e00f8/html5/thumbnails/12.jpg)
Hériter du DropDownListHériter du DropDownList
Ajout de propriétésAjout de propriétés
Réécrire le RenderContentsRéécrire le RenderContents
![Page 13: ASP.NET 2.0 : Création de contrôles serveurs Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs Microsoft France Level 300.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9dbd497959293b8e00f8/html5/thumbnails/13.jpg)
Customiser le SmartTag pour la nouvelle DropDownListCustomiser le SmartTag pour la nouvelle DropDownList
Créer un nouveau ControlDesignCréer un nouveau ControlDesignpublic override DesignerActionListCollection ActionLists{
//Return DesignerActionListCollection()}
![Page 14: ASP.NET 2.0 : Création de contrôles serveurs Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs Microsoft France Level 300.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9dbd497959293b8e00f8/html5/thumbnails/14.jpg)
5 : MyDropDownListMyDropDownListControlDesign
5 : MyDropDownListMyDropDownListControlDesign
demodemo
![Page 15: ASP.NET 2.0 : Création de contrôles serveurs Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs Microsoft France Level 300.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9dbd497959293b8e00f8/html5/thumbnails/15.jpg)