Tutorial 9 – Layout Binding

Published 23 August 10 03:58 AM | Nico

La vidéo du tutorial

Enrichissement de l’arbre

Nous allons ajouter un nœud supplémentaire avec les Product, toujours en lazy loading.

Dans Visual Studio, nous allons ajouter une nouvelle Commande pour charger les Product.

Cette commande est très similaire à la précédente; elle charge les Product associés à une SubCategory donnée par son ID.

Compilez la solution.
DataSet IADWService.LoadProducts(int productSubCategoryId)
{
    IDataManager dm = EntityManager.FromDataBaseService("DataAccessAdventureWorks");
    dm.LoadAssociated<Product, ProductProductSubcategory>(productSubCategoryId);
    return dm.Data;
}

Dans BindingStudio, sélectionnez la Vue Explorer, puis le Nœud SubCategory.

Ajouter un Nœud Child.

Le nœud est Contextual.

Configurons le DataName vers la Table

.ProductProductSubcategory.Product

Associez la Property Text à la Colonne Name de l’entité Product.

image

De même que pour le nœud ProductCategory, nous configurons un CommandBinding sur le nœud ProductSubcategory pour appeler la Commande de chargement des Products.

Ajoutez un CommandBinding sur l’événement OnFirstExpand.

Sélectionnez la Commande LoadProducts.

Bindez le paramètre sur la colonne d’identifiant du noeud courant.

Sauvegardez l’application.

image

image

Lançons l’application. L’Arbre affiche bien les 3 niveaux attendus, toujours en Lazy Loading.

image

Layout Binding

Nous allons maintenant améliorer la mise en page de nos Vues.

En fait, nous voulons maintenant que cette vue de données soit dans une vue parent.

Dans nos contrôles, nous avions défini le controle ADWMain:

    <div aas:control="ADWMain">
        <div aas:name="ZoneToolBar" class="Panel"></div>    
        <div aas:name="ZoneTree" class="Panel"></div>    
        <div aas:name="ZoneProduct" class="Panel"></div>    
    </div>

C’est précisément le rôle de ce contrôle, être un container pour les autres contrôles.

Dans BindingStudio, ajoutez une nouvelle Vue sur le controle ADWMain.

Cette vue n’a pas de Binding de données, car elle ne contient que des controles Panel, qui sont des containers d’autres vues, et qui n’affichent pas de données de notre DataSet.

Nous allons configurer le Layout de cette vue.
image
Sélectionnez l’onglet Layout.

Cliquez sur le bouton clip_image002[4], une ligne de Layout apparait.

Nous pouvons sélectionner une des Zone de la vue; il y en a 3, chacune définie par un Panel nommé. Choisissons ZoneTree.

Associons la vue ADWTree.

Cochons la case à cocher, pour signifier que la vue Child est affichée en même temps que la vue Parent (sinon, la zone sera vide).

La vue ADWMain, est maintenant configurée pour contenir la vue ADWTree.
image
Faite un click droit sur la vue ADWMain.

Cliquez sur le Menu “Set as starting View”.

La vue ADWMain est maintenant définie comme vue de démarrage.

Sauvez l’Application.
image

 

 

 

 

Si nous lançons l’application, nous voyons maintenant que la vue de l’Arbre est délimitée en largeur:

image

Nous allons améliorer un peu le positionnement de la vue, à l’aide d’une feuille de Style.

Dans Visual Studio, ajoutez un fichier Styles.css

Définissez le positionnement des différentes zones, en fonction de leur nom.

Le CSS est tout à fait standard, et permet de personnaliser l’affichage comme vous le souhaitez.
.ZoneToolBar
{
	top:2em;
	left:0;
	height:3em;
	width:100%;
}
.ZoneTree
{
	top:3em;
	left:0;
	height:50em;
	width:34%;
	border: solid 1px;
	border-color:Black;
	overflow:auto;
}
.ZoneProduct
{
	top:3em;
	left:34%;
	width:64%;
	height:20em;
}
Pour que cette feuille de style soit prise en compte, il est nécessaire d’ajouter sa référence dans le fichier ADWWeb.application.htm.ashx, qui contient toutes les références de l’application.

Dans la section CSS Link, ajoutez la ligne:
<link rel='stylesheet' type='text/css' href='~/Style.css' />

Le répertoire du fichier est défini par ~, qui désigne le répertoire de l’Application.

Ce fichier est édité manuellement, car il permet de controler les différents CSS à charger, et l’ordre dans lesquels ils sont chargés. Ceci est utile si vous souhaitez ajouter d’autres CSS comme, par exemple, JQuery.

Compilez la solution.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns='http://www.w3.org/1999/xhtml' xmlns:aas='http://aspectize.com/Ajax'>
<head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'/>
<!-- CSS Link -->
<link rel='stylesheet' type='text/css' href='../Aspectize.core/Aspectize.css' />
<link rel='stylesheet' type='text/css' href='~/Style.css' />
<!-- JS Files -->
<script type='text/javascript' src='../Aspectize.core/Aspectize.runtime.js'></script>
<script type='text/javascript' src='~/ADWWeb.library.js'></script>
<script type='text/javascript' src='~/main.js'></script>
<title>Aspectize ADWWeb Application</title>
</head>
<body></body>
</html>

Nous voyons maintenant que le CSS est bien pris en compte:

image

Voilà, nous avons vu comment les différentes vues pouvaient être agencées les unes par rapport aux autres, et comment l’application va pouvoir s’enrichir avec de nouvelles vues.

La suite, au prochain épisode.

Classé sous : , , ,

Commentaires

Pour ajouter un commentaire, vous devez d'abord vous identifier ici
# Les news d'Aspectize said on August 27, 2010 06:14 AM:

La vidéo du Tutorial &#160; Binding relationnel Ajoutons un noeud fils à notre arbre. Sélectionnez la