Comunidad de diseño web y desarrollo en internet online

Recorrer un data provider..

Citar            
MensajeEscrito el 21 Abr 2008 09:09 pm
Holassss como estan,. quisiera saber si hay alguna manera de recorrer un DataProvider como si fuera un array.
ejemplo..
tengo un dataProvider.

Código :

var dp:DataProvider = new DataProvider();
dp.addItem({label:"item 1a,data:3"});
dp.addItem({label:"item 2a,data:6"});


y yo tengo en mi poder solo el numero data..
por eso quiero recorrer el data provider para que me debuelva con el Data el Label.

Algo asi (ovbio que esta funcion esta mal) pero para que se den una idea..

Código :

function devuelveLabel(data:String):String{
for(var i:int=1;i<=dp.lenght;i++){
var label:String=dp[i].label
}
return label;
}

Yo le paso solo el Data y que me devuelva el Label de un dataProvider...
ojo. no quiero meterlo an ningun array ni convertirlo en Objeto ya que me parece inesesario.
alguna forma tienen que haber. :wink: solo que la desconosco..
desde ya muchas gracias..

Saludos.

Por phoxer

Claber

827 de clabLevel

4 tutoriales

Genero:Masculino  

Ing en Sistemas

msie7
Citar            
MensajeEscrito el 22 Abr 2008 01:27 am
El dataProvider es un array de objetos, no tiene un key ni las facilidades del dataset

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 Abr 2008 01:55 am
oseaaa. no se puede recorrer???

Por phoxer

Claber

827 de clabLevel

4 tutoriales

Genero:Masculino  

Ing en Sistemas

msie7
Citar            
MensajeEscrito el 22 Abr 2008 08:39 am
Claro que si, es un array, pero tendrás que escribirte tu función para comparar si el data coincide con el del objeto en esa posición, no key ni método ad hoc disponible

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 Abr 2008 01:11 pm
ok. dado que no soy una persona que se rinde facilmente aca lo saque. para el que tiene el mismo problema que yo tenga la solucion.. :wink:

el dataprovider es un array de objetos SI, pero hay que parsearlo antes de recorrerlo, (quizas esa informacion me hubiera sido mas util ^^ )..

import fl.data.DataProvider;
var dp:DataProvider = new DataProvider();
dp.addItem({label:"item 1a",data:"2"});
dp.addItem({label:"item 2a",data:"4"});
dp.addItem({label:"item 3a",data:"5"});
dp.addItem({label:"item 4a",data:"6"});
dp.addItem({label:"item 5a",data:"7"});
dp.addItem({label:"item 6a",data:"9"});
dp.addItem({label:"item 7a",data:"11"});
dp.addItem({label:"item 8a",data:"22"});

function getLabelById(id:String):String {
for(var i:int=0;i<dp.length;i++){
if(id==dp.toArray()[i].data){
return dp.toArray()[i].label;
break;
}
}
return "no data";
}


trace(getLabelById("5"));


bueno saludos y gracias por responder igualmente...

dato extra: el import fl.* tiran errores si no se tiene un componente en el esenario..
tengo una cabeza calva gracias a eso jaja :|

Por phoxer

Claber

827 de clabLevel

4 tutoriales

Genero:Masculino  

Ing en Sistemas

msie7
Citar            
MensajeEscrito el 22 Abr 2008 01:36 pm
Sip, aunque no hace falta hacer nada especial, conociendo el nombre de la propiedad del objeto, lo miras directamente

[script]
function getLabelById(id:String):String {
for(var i:int=0;i<dp.length;i++){
if(id==dp[i].data){
return dp[i].label;
}
}
return "no data";
}
[/script]

Entendí que preguntabas si había algo que ya hiciera esto, no sobre como hacer esta función

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 Abr 2008 01:42 pm
:o nooo eso tira error solisarg, porque tenes que parsear el DataProvider a dp.toArray() provalo..
por eso me volvia loco yo. yo lo hacia de la manera que decis vos. pero fijate que te tira error.
hasta que encontre en las propiedades del DataProvider el .toArray() ^^ y listo.. ahi si lo lee como un array comun y corriente.

Por phoxer

Claber

827 de clabLevel

4 tutoriales

Genero:Masculino  

Ing en Sistemas

msie7
Citar            
MensajeEscrito el 22 Abr 2008 01:47 pm
Probablemente las propiedades sean ahora privadas, lo miraré

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.