Comunidad de diseño web y desarrollo en internet online

Filtrar elementos en el datagrid, dataprovider cambia, pero

Citar            
MensajeEscrito el 08 Oct 2009 08:03 pm
Hola Comunidad:

Bueno tengo dos consultas que hacer, he creado un filtrado de datos sobre un datagrid, esto es lo mismo que cuando se
usan sentencias sql pero del lado del cliente , explico como hacerlo y por cierto que es muy facil

creo una funcion para el filtro asi

Código :

public function filtro(){
 this.miDatagrid.dataProvider.filteFunction=BuscarCampo;
 this.miDatagrid.dataProvider.refresh();
}


Ahora la funcion Busca Campo, voy hacer dos todo lo demas se repite


Código :

public function buscarCampo(item:Object){
  var esIgualCampo:Boolean=false;
    switch(campValor){
       if(item.NombreDelCampoDataGrid.toLowerCase.search(search.text.toLowerCase()!=-1){
      //lo tenemos entonces cambiamos
        esIgualCampo=true;
       return esIgualCampo;
       break;
     //aqui se repite el codigo para todos los campos del datagrid
     ... 
      }
    }
 }



Ahora campoValor me lo tomas de un combobox solamente es para referenciar nombres, puede hacerse tambien
utlizando funcion para obtener el heder del data grid, bueno ahora necesitamos la entrada para hacer el filtro
en este caso uso un textText

Código :

.....
        <mx:Text text id="search" change="filterDemo" />
.........


Pues bien como se daran cuenta al escribir en es texinput , el datagrid filtra los datos para esa entrada
que en el textinputext , me explico si tengo un datagrid y tengo un encabezado que se lleme nombre
y tengo 1000 elementos en el datagrid , inmediatamente si coloc "juan" en el inputext filtra los elementos
que concidan con juan solamente disminuyendo los elementos del datagrid.

He visto que funciona sacando el largo y haciendo un alert.show sobre el datagrid mostrandome el contendio
de este , es decir que el datagrid ha cambiado.

y ahora despues de todo esta explicacion pasa a mi pregunta PORFAVOR ESTO ES MUY RARO HELP

RESULTA que estoy con java y flex cuando hago una iteracion sobre el datagrid en flex me muestra
el dataprovider con los datos filtrados es decir:

Código :

.....
      var contendio:Object=this.midatagrid.dataProvider;
     //hago las iteracion y todo OK
.........

Pero cuando paso el dataprovider hacia mi remoting, no los pasa filtrados , es decir si tengo 1000 y hago
un filtro y el datagrid quedan 50 , al pasarlo al remoting pasan los 1000 y NO LOS 50!!!!

Código :

.....
 //desde flex y embebiendo el script, donde el cl es el remoting
     Application.applicatiocn.cl.crearPDF(.....,this.miDataGrid.dataProvider).
.........


Alquien sabe como soluciar este problema , sera que el filtrado lo hace en algun cache de flex
tendre que solucionarlo haciendo una nuevo arregelo y pasandole los datos hace arreglo (NO QUIERO LLEGAR
A ESO)

COMO PUEDO REFLEGAR EL NUEVO CAMBIO Y PASARELE EL NUEVO CAMBIO SIN HACER OTRO ARREGLO!!!!!

AYUDA POR FAVOR!!!!!! QUE SUCEDE PORQUE REFLEJA EL CAMBIO SOLO EN EL FLEX Y NO EN BAKC-END
SIEMPRE TENGO EL TOTAL DE DATAPROVIDER Y NO LOS DATOSFILTRADOS
:cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :shock: :shock: :shock: :shock: :shock:

:cry: :cry: :cry: :cry:

Por xcom

Claber

530 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Oct 2009 09:02 pm
Me autorespondo un nuevo arreglo la iteracion sobre 10000 me cuestia 2 segundos , para lo que deseo esta bien

Por xcom

Claber

530 de clabLevel



 

firefox

 

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