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
