Trucs et astuces pour Coldfusion MX 7 par Serge Rappaille

Trucs et astuces pour Coldfusion MX 7

Présentation

Ce blog n'a pour seule prétention que de vous offrir mes différentes découvertes sur Coldfusion MX 7, tantôt des solutions, tantôt des petits soucis qui resteront aussi énigmatiques que le sourire de la Joconde. Je souhaite seulement que certains articles vous feront gagner du temps.

Bonne lecture,

Serge Rappaille

Forum Coldfusion

Souscrivez à notre forum francophone sur Google Groups Bêta.
Votre adresse email :


mardi 27 novembre 2007

CF(RICH)TEXTAREA - RichTextarea for flash forms

Bonjour,

Je développe actuellement un petit éditeur en FlashForm incluant un petite couche CSS pour faire "joli".

Démo visible sur
http://www.create2.be/public/richtextarea/

Si quelqu'un connait un moyen élégant (même sur Flash) pour récupérer une chaîne de caractères et ses variations typographiques sans passer par un monstrueux LOOP, je suis preneur !

Bref, le projet est loin d'être terminé mais revenez-le voir de temps en temps.

A bientôt,


Serge

lundi 13 août 2007

CFforum.eu : Projet de communauté Coldfusion (fr)

Voici la première pierre d'un projet trop longtemps retardé. Pour le moment ce n'est
pas très beau mais fonctionnel. Le CSS ne va pas tarder à évoluer.

Bref, je vous donne rendez-vous sur http://www.cfforum.eu

Je vous y attend nombreux (en particulier dans la rubrique Who's who).

Coldfusionnement vôtre,

Serge

samedi 11 août 2007

Lier un CFSELECT à un CFGRID

Imaginons (car taper tout le code est inutile) que vous affichiez une liste de personnes dans un CFGRID et que, lorsque vous sélectionnez une ligne, vous affichez toutes les coordonnées de votre sélection dans un formulaire. Le tout, dans un un CFFORM au format Flash (FlashForm donc).

Pour lier un champ "Text" à votre grille (et vice-versa), c'est assez simple et même documenté. Cela donne quelque chose du genre :

<cfinput type="text" name="FIRSTNAME" label="Prénom :" message="Prénom obligatoire" required="yes" bind="{myGrid.dataProvider[myGrid.selectedIndex]['FIRSTNAME']}" onChange="myGrid.dataProvider.editField(myGrid.selectedIndex, 'FIRSTNAME', FIRSTNAME.text);" validateat="onsubmit">

Jusque là, tout va bien. Jusqu'au moment où vous souhaitez ajouter une liste déroulante (CFSELECT), sélectionnée par défaut en fonction du contenu du CFGRID et qui, une fois utilisée, met à jour la valeur dans le CFGRID. Vous testez en vous inspirant du CFINPUT, vous lisez la documentation, vous cherchez sur le web, difficile de trouver l'info recherchée.

Pourtant, vous aviez déjà trouvé la première pièce du puzzle avec la syntaxe suivante :

<cfselect name="GENDER" label="Genre :" onchange="myGrid.dataProvider.editField(myGrid.selectedIndex, 'GENDER', GENDER.selectedItem.data);">

<option value="M">Masculin</OPTION>
<option value="F">Féminin</OPTION>
</cfselect>

Seulement, cela ne suffit pas. Si vous sélectionnez une ligne du CFGRID, vous constatez que les CFSELECT ne se positionnent pas sur les valeurs décrites par le CFGRID. Le lien entre ses deux composants ne fonctionne que dans un sens. Du moins pour le moment.

Reprenons le CFGRID et ajoutons une petite fonction pour tout changement d' état (propriété onChange). Pour mémoire, sélectionner une ligne change son état :

<cfgrid name="myGrid" height="360" query="lstUsers" appendkey="yes" griddataalign="left" gridlines="yes" rowheaderalign="left" colheaderalign="left" selectmode="edit" enabled="yes" visible="yes" format="flash" autowidth="true" rowheaders="no" onchange="#majDeroulants#">

Et plaçons cette dernière au début de notre page :

<cfsavecontent variable="majDeroulants">

for (var i:Number = 0; i<GENDER.length; i++) {if (GENDER.getItemAt([i]).data == myGrid.selectedItem.GENDER) GENDER.selectedIndex = i};
</cfsavecontent>

Voilà, cela fonctionne à présent. Que vous sélectionnez une ligne ou modifiez un liste déroulante, les deux composants sont à présent synchrones.

A bientôt !



Recherche programmeur Coldfusion

Rubrique temporairement fermée.