Bonjour,

J'ai des données à entrer dans un DATAGRID provennant d'un fichier XML.

Voici la structure de mon fichier XML :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 ?