Cfgrid via un cfselect et selectmode="edit"

abmail Messages postés 20 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 8 juin 2012 - 8 avril 2008 à 01:04
nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013 - 8 avril 2008 à 16:40

4 réponses

abmail Messages postés 20 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 8 juin 2012 1
8 avril 2008 à 01:09
bonjour,

Voila, je cherche la solution mais je ne la trouve pas ni ici ni sur google... enfin bon je vais essayer d'etre clair afin de vous faire comprendre mon probleme...

j'ai 2 tables : rubriques et sous-rubriques

1// rubrique :
id (numauto) cle uniq
rubrique (libelle)

2// sous-rubrique :
id (numauto) cle uniq
id_rub (relation table rubrique)
sousrubrique (libelle)

ce que j'aimerais, c'est lorsque je fais appel a la page GestionCatalogueSousRubrique.cfm, celle ci m'affiche un select (rubrique via un select)
et un cfgrid (sous-rubrique)... jusque la ca va...

mais j'aimerais utiliser le selectmode="edit" afin de gerer en ajout/mod et suppression dans la cfgrid sous-rubrique. en gros si je selectionne une rubrique via le select, la grid m'affiche les sous-rubriques de la rubrique et si je clique sur ajouter j'aimerais que la fonction m'importe directement l'id rubrique dans mon cfgridcolumn champ rubrique (display=no) l'id de la rubrique afin de ne faire saisir que la sous-rubrique...

enfin je sais pas si j'ai ete clair mais peut etre qu'en vous joingnant le code vous allez comprendre un peu mieux :


***************** page _ListeCATsousrubrique.cfm
<cfsilent>
<cfinclude template="_stylesForms.cfm">
<CFQUERY NAME="TheRubs" DATASOURCE="#BaseSQL#">
select * from CATrubriques
</CFQUERY>
<CFQUERY NAME="ThesousRubs" DATASOURCE="#BaseSQL#">
select * from CATsousrubriques
</CFQUERY>
</cfsilent>
<cfform action="GestionCatalogueSousRubrique.cfm" name="myForm" format="flash" width="500" height="350">

<cfformitem type="script">
function applyFilter( term:String, grid:mx.controls.DataGrid, columns:Array ):Void {

var filterTerm:String = term.toString().toLowerCase();

if(filterTerm.length > 0) {
if(_global.unfilteredData[grid.id] == undefined){
if (_global.unfilteredData == undefined){
_global.unfilteredData = {};
}
_global.unfilteredData[grid.id] = grid.dataProvider.slice(0);
}

var filteredData:Array = [];

for(var i = 0; i< _global.unfilteredData[grid.id].length; i++) {
var item:Object = _global.unfilteredData[grid.id][i];
var added:Boolean = false;

for(var j = 0; j< columns.length; j++){
if(!added){
var value:String = item[columns[j]].toString().toLowerCase();
if(value.indexOf(filterTerm) != -1) {
filteredData.push(item);
added = true;
}
}
else {
break;
}
}
}

grid.dataProvider = filteredData;

}
else {
if(_global.unfilteredData[grid.id] != undefined) grid.dataProvider = _global.unfilteredData[grid.id];
}
}
</cfformitem>
<cfformgroup type="panel" style="#contentPanelStyle#" label="Liste des sous-rubriques du catalogue">
<cfformgroup style="#contentPanelStyle#" type="horizontal">

<cfselect name="ChoixRub" label="Rubrique" width="170" query="TheRubs" display="rubrique" value="rubrique" onchange="applyFilter(ChoixRub.selectedItem.data,data,['rubrique'])" queryposition="below">
<option value="">Toutes les rubriques</option>
</cfselect>


</cfformgroup>

<cfgrid style="#contentPanelStyle2#" selectmode="edit" name="data" query="ThesousRubs" height="200"
rowheaders="no" autoWidth = "yes">
<cfgridcolumn display="no" name="id" header="id">
<cfgridcolumn display="no" name="rubrique" header="rubrique">
<cfgridcolumn name="sousrubrique" header="Sous-rubrique">
</cfgrid>
<cfformgroup type="horizontal" style="horizontalAlign:right;">

<cfinput type="button" name="ins" value="Ajouter"
onClick="GridData.insertRow(data);">
<cfinput type="button" name="del" value="Supprimer"
onClick="GridData.deleteRow(data);">
<cfinput type="Submit" name="submit" value="Enregistrer">
</cfformgroup>


</cfformgroup>
<CFINPUT TYPE="hidden" NAME="UpdateTabCATrubriques" VALUE="1">
<CFINPUT TYPE="hidden" NAME="user" VALUE="#user#">
<cfif isdefined("pwdf")>
<CFINPUT TYPE="hidden" NAME="pwdf" VALUE="#pwdf#">
<cfelse>
<CFINPUT TYPE="hidden" NAME="pwdf" VALUE="#pwd#">
</cfif>
</cfform>

****************** page GestionCatalogueSousRubrique.cfm

<cfif isdefined("UpdateTabCATsousrubriques")>
<cfgridupdate grid="ListSousRub" datasource="#BaseSQL#" tablename="CATsousrubriques" keyonly="yes">
</cfif>
<cfinclude template="_ListeCATsousrubrique.cfm">

******************************************************

peut etre connaissez vous la solution ???
en vous remerciant
abmail Messages postés 20 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 8 juin 2012 1
8 avril 2008 à 01:15
desole, je me suis relu et c'est pas terrible comme explication !!
donc j'aimerais pouvoir dans ma cfgrid, ajouter, modifier et supprimer une sous rubrique sans devoir saisir la rubrique (uniquement la sous rubrique) la rubrique etant elle selctionnée via un cfselect...
peut etre est ce plus clair ?

en vous remerciant
abmail Messages postés 20 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 8 juin 2012 1
8 avril 2008 à 02:28
re.

je penses etre sur la voie :

j'ai ajouter : data.dataProvider.editField(data.selectedIndex,'rubrique', ChoixRub.selectedIndex); au bouton ajouter comme ci-dessous :

<cfinput type="button" name="ins" value="Ajouter"
onClick="{GridData.insertRow(data);data.dataProvider.editField(data.selectedIndex,'rubrique', ChoixRub.selectedIndex);}">

mais lorsque je "submit" cela n'enregistre pas le "row" dans ma table

une idee ?
nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013
8 avril 2008 à 16:40
Bonjour,

je n'ai jamais eu l'occasion detravailler avec le cfgrid, mais si je suis ta logique, peut-être t'assurer que <cfif isdefined("UpdateTabCATsousrubriques")> est bien Vrai !
Il existe des exemples de tout type avec cfgrid ici : http://www.asfusion.com/

Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
Rejoignez-nous