[FLASH 8] DataGrid + Recherche dans une cellule ?
Bonjour,
J'ai des données à entrer dans un DATAGRID provennant d'un fichier XML.
Voici la structure de mon fichier XML :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| <?xml version="1.0" encoding="UTF-8"?>
<racine>
<dj>
<pseudo>xxx</pseudo>
<pays>belgique</pays>
<ville>Verviers</ville>
<genre>House</genre>
<prenom>xxxx</prenom>
<nom>xxxx</nom>
<daten>01/01/1900</daten>
<bio>xxx a débuté ...</bio>
<email>xx@xxx.be</email>
<web>www.xxx.be</web>
<photo>02.jpg</photo>
</dj>
<dj>
<pseudo>zzzz</pseudo>
<pays>belgique</pays>
<ville>Verviers</ville>
<genre>Trance</genre>
<prenom>zzzz</prenom>
<nom>zzzz</nom>
<daten>01/01/1900</daten>
<bio>zzzza débuté ...</bio>
<email>zz@zz.be</email>
<web>www.zzz.be</web>
<photo>68.jpg</photo>
</dj>
</racine> |
Voici comment je charge mon DataGrid :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| on(release)
{
var valeur=0;
x.load("dj.xml");
for (var i = 0; i < l ; i++)
{
var cur = node[i] ;
if ( (cur.nodeName == "dj") && (rnom!="") && (rstyle!="") )
{
var subNode:Array = cur.childNodes ;
var item = {} ;
item.index = cur.attributes.index ;
var k:Number = subNode.length ;
for (var j:Number = 0 ; j<k ; j++)
{
cur = subNode[j] ;
item[cur.nodeName] = cur.firstChild.nodeValue ;
trace("Test : "+item[cur.nodeName]);
if( (j==3) && (cur.firstChild.nodeValue==rstyle.text) )
{
valeur=1;
trace(cur.firstChild.nodeValue);
}
}
if(valeur==1)
{
data.push(item);
valeur=0;
}
}
}
grid.dataProvider = data ;
grid.sortItemsBy("nom") ;
nb.text = x.firstChild.childNodes.length;
rnom="";
rstyle="";
} |
Ca fonctionne, mais j'aimerais modifier la fonction ci dessus (que j'ai déja essayé d'adapter pour faire une "recherche") pour comparer les données du dataGrid.
En gros, au dessus de mon datagrid, j'ai 2 champs de recherche. 1 pour le Nom. 1 pour le Style musical joué.
Lorsque l'utilisateur cliques sur le bouton "OK", j'aimerais que n'apparaissent dans le DATAGRID que les enregistrements concernés !
Et pour ca, je compare les données injectées dans le datagrid.
Quelqu'un aurait une idée ? Car ca ne fonctionne pas quand je mets :
Code:
1 2 3 4 5
| if( (j==3) && (cur.firstChild.nodeValue==rstyle.text) )
{
valeur=1;
trace(cur.firstChild.nodeValue);
} |
Sachant que J == 3 c'est le champs "genre" (donc le style musical) qui est sélectionné, et rstyle.text est mon composant "texte de saisie" appellé RSTYLE.
Mon probleme : Il affiche toujours tous les enregistrements... Au lieu de n'afficher que les enregistrements désirés. :?
Une idée ?