Connexion



Register
Forgot Password ?

Inscription

L'inscription à DotNetNuke France est entièrement gratuite et vous permet de profiter pleinement des outils mis à votre disposition. L'inscription ne donne néanmoins pas le statut d'adhérent à l'association.

  • Discutez sur le forum et suivez son activité
  • Répondez aux articles
  • Soutenez l'association
  • Téléchargez les traductions

 

DotNetNuke France

Association francophone

Le contrôle Property Editor

Auteur : Aurel

Date de pulication : 25 May 2010

Classement : Développement

Article consulté 1404 fois Article Rating (1 votes)
 

Introduction

Le contrôle PropertyEditor à été introduit avec DotNetNuke 4.3. Ce contrôle permet d’afficher et d’éditer dynamiquement les propriétés d’objets métiers. Comme nous allons le voir, ce composant permet de développer rapidement des interfaces graphiques. Il est flexible et extensible.

Utilisation classique

Aperçu

La puissance du property editor tire sa force dans le fait que l’on peut utiliser et enrichir directement les classes métiers. Dans l’exemple suivant, on a une classe métier, utilisée pour stocker ces données.

Properties 

Le property editor utilise le type des propriétés pour déduire le bon contrôle à afficher automatiquement. Par exemple on a une liste déroulante dans le cas d’une énumération.

Analyse du property editor

Voici la définition d’un property editor dans un fichier ascx :

<dnn:PropertyEditorControl ID="pePanels" runat="server"
    EditControlStyle-CssClass="NormalTextBox"
    EnableClientValidation="true"
    ErrorStyle-CssClass="NormalRed"
    GroupHeaderStyle-CssClass="Head"
    GroupHeaderIncludeRule="True"
    HelpStyle-CssClass="Help"
    LabelStyle-CssClass="SubHead"
    VisibilityStyle-CssClass="Normal"
    EditControlWidth="400px"
    LabelWidth="120px"
    Width="600px"
    GroupByMode="Section"
    DisplayMode="Div"
    SortMode="SortOrderAttribute">
</dnn:PropertyEditorControl>

Il est possible de contrôler finement la manière dont le property editor s’affiche, d’une part en spécifiant les classes CSS des éléments composant le property editor, et d’autre part en utilisant les propriétés dédiées à la personnalisation de l’affichage.

DataBinding

Le property editor fonctionne comme n’importe control basé sur des données (peuplement de la propriété DataSource et appel de la méthode DataBind).

pePanels.LocalResourceFile = LocalResourceFile;
pePanels.DataSource = panels;
pePanels.DataBind();

Il y a une subtilité importante concernant le databinding du property editor. Cette opération doit être faite pour tous les chargements de la page, non pas seulement au premier comme c'est le cas pour les autres contrôles liés aux données.

Localisation

Il est possible de localiser les labels du property editor en utilisant la propriété LocalResourceFile. Les clés de resources sont de la forme « {nom_de_la_classe_metier}_{nom_de_la_propriété}.Text ». Pour les labels d’aides il faut remplacer « .Text » par « .Help ».

Récupération des données

La récupération des données se fait de manière transparente par l’intermédiaire de la propriété DataSource, avec un cast vers le type de la classe métier. En général cette récupération se fait sur un évenement, par exemple au clic sur un bouton "Sauvegarder".

Utilisation avancée

Utilisation des attributs

Il est possible de personnaliser finement le property editor grâce à l’utilisation d’attributs sur les propriétés de la classe métier. Voici un exemple, permettant de spécifier que la propriété Title est requise :

[Required(true)]
public string Title
{
get { return _title; }
set { _title = value; }
}

Il est possible d’utiliser plusieurs attributs sur une même propriété. Voici la liste des attributs disponibles :

ControlStyleAttribute Permet de spécifier une classe CSS au contrôle associé à la propriété.
IsReadOnlyAttribute Permet de mettre une propriété en lecture seule.
LabelModeAttribute Permet de choisir l’emplacement du label d’une propriété.
MaxLengthAttribute Permet de définir une longueur maximale sur le champ associé à une propriété.
RegularExpressionValidatorAttribute Permet de spécifier une expression régulière utilisée pour la validation du champ.
RequiredAttribute Permet de spécifier si une propriété est requise ou non.
SortOrderAttribute Permet d’ordonner l’affichage des propriétés.

Le principal inconvénient de l’utilisation d’attributs est de lier en dur des informations sur l’apparence dans le modèle de données. Nous verrons dans un prochain article comment séparer les deux domaines afin de faciliter le travail de l'intégrateur-designer.

 

Notez cet article !

DotNetNuke c'est ...

  • Facile à utiliser
  • Open Source et gratuit
  • 100% personnalisable
  • Des milliers d'extensions
  • Multilingue
  • Multi-site
  • Maintenu par une communauté d'experts
  • Sécurisé

Restez informé !

Inscrivez vous pour recevoir notre lettre d'information.

x

Restez connecté !

Le fichier que vous téléchargez sera probablement mis à jour très bientôt.

Inscrivez vous
et nous vous informerons des mises à jour