Trucs et astuces
From PRADO Wiki
Contents |
Présentation
Sur cette page vous trouverez de plus en plus de trucs et astuces ou mini "how-to" (comment-faire) au fur et à mesure des contributions des membres de la communauté francophone.
Note : Si vous avez un doute sur l'ajout d'un mini how-to utilisez la page de discussion pour en parler avec quelqu'un de plus expérimenté en écrivant votre idée.
Prado v3.x
Différence entre <%= et <%#
Le tag <%= permet de sortir à l'endroit où on place le résultat (writable, de type string ou de type primitif : integer, float, boolean...) de ce qu'on y place, tandis que le tag <%# permet d'évaluer à peu près la même chose, mais dans une itération (TRepeater, TDataList...)
Navigation dans les contrôles de la page
Ceci concerne principalement les contrôles liste (ou List Controls : TListBox,TCheckBoxList,...) et les contrôles donnée (ou Data Controls : TDataList, TDataGrid et TRepeater) pour lesquels on peut éprouver des difficultés au début...
Etant donné que ces contrôles sont des listes d'itérations contenant soit les mêmes contrôles avec différentes données (Data Controls) soit éventuellement différents contrôles (List Controls) il n'est pas évident au premier abord de naviguer dedans depuis le code PHP. Et pourtant il suffit d'imaginer qu'on navigue dans le DOM depuis Javascript, et tout devient plus simple, car ça reviens exactement au même.
Exemple
<com:TContent> <com:TRepeater EnableViewState="false"> <prop:HeaderTemplate> ... </prop:HeaderTemplate> <prop:ItemTemplate> ... </prop:ItemTemplate> <prop:FooterTemplate> <com:TLabel text="<%# $this->Parent->ItemCount %>" /> </prop:FooterTemplate> </com:TRepeater> </com:TContent>
Dans ce cas, la navigation à partir du TLabel s'effectue de la manière suivante :
- $this->Parent => TRepeater
- $this->Parent->Items => TRepeaterItemCollection (qui est une TList)
- $this->Parent->Items->count() => Nombre d'éléments du repeater
Savoir où on se trouve dans la page
Et oui, il y a parfois de quoi se perdre plus le nombre de composant grandit dans la page et si en plus ils s'imbriquent....
Le plus simple est alors d'afficher la classe du $this grâce à PHP à l'endroit où vous avez un doute, voir même dans le fichier .php afin de vérifier un chemin dont vous avez un doute :
echo get_class($this);
TFormLabel a été remplacé par TLabel
TFormLabel qui existait sous Prado 2.x à été renommé et l'utilisation révisée.
Sous Prado 3.x c'est désormais TLabel qui remplace l'ancien TFormLabel de la façon suivante :
<com:TLabel Text="TEXTE_DU_LABEL" ForControl="CONTROL_POINTE" />
Mais TLabel joue également un autre rôle très intéressant, il permet de pouvoir contrôler dynamiquement avec la puissance de Prado un simple texte dans une page. Pour ce faire il suffit de l'utiliser de la façon suivante, l'ID (identifiant) permettant de le manipuler comme tout autre contrôle :
<com:TLabel ID="MON_LABEL" Text="TEXTE_MANIPULABLE" />
Il est ensuite possible de modifier par exemple le texte depuis le fichier php très facilement en utilisant l'ID du TLabel :
$this->MON_LABEL->Text="Le nouveau texte !";

