Hola.

Estoy tratando de filtrar cierto contenido de un datagrid que tengo, el contenido se carga con MDM Zinc de una BD de Access, carga perfecto y todo va bien, pero al tratar de filtrar algun datos no lo hace, simplemente el boton no hace nada, les agradezco su valioso apoyo en este proyecto que me urge entregar en la universidad, les paso el código completo:


Código ActionScript :


var databaseFile:String = "ejemplo_agenda.mdb";
var databasePassword:String = "";
   var path:String = mdm.Application.path+databaseFile;
   mdm.Database.MSAccess.connect(databaseFile,databasePassword);
      var success = mdm.Database.MSAccess.success();
      if (success == false) {
         var msg:String = "No se puede conectar a la bbdd";
         mdm.Dialogs.prompt(msg);
         return;
      }   
      
      
      
//FUNCION PARA HACER LA CONSULTA A LA BBDD
function consulta(){
   theDataGrid.removeAll();
   var sqlString:String = "SELECT id,nombre,apellidos,telefono FROM ejemplo_agenda order by id asc";
   // Ejecutamos la consulta sql
   mdm.Database.MSAccess.select(sqlString);
   // Comprobamos los errores
   var error:Boolean = (mdm.Database.MSAccess.error() == "true");
   if (error) {
      var msg:String = "Ha ocurrido un error en la consulta!";
      mdm.Dialogs.prompt(msg);
      return;
   }      
   //Obtenemos los datos de la consulta
   var dataSet:Array = mdm.Database.MSAccess.getData();
   
   var datos:Object;
   var newItemsArray:Array = new Array();
   for (var i = 0; i<dataSet.length; i++) {
      datos = {};
      datos.ID = parseInt(dataSet[i][0]);
      datos.Nombre = dataSet[i][1];
      datos.Apellidos = dataSet[i][2];
      datos.Telefono = dataSet[i][3];
      newItemsArray.push(datos);
   }   
   theDataGrid.dataProvider = newItemsArray;

      
}


//FUNCION PARA MONTAR EL DATAGRID
function layoutGUI():Void {
   // Montamos el encabezado del datagrid
   theDataGrid.setStyle("fontSize",10);
   theDataGrid.columnNames = ["ID", "Nombre", "Apellidos", "Telefono"];
   theDataGrid.vScrollPolicy = "auto";

   var gridWidth:Number = theDataGrid.width;

   theDataGrid.getColumnAt(0).width = 0.05*gridWidth;
   theDataGrid.getColumnAt(0).headerText = "ID:";

   theDataGrid.getColumnAt(1).width = 0.35*gridWidth;
   theDataGrid.getColumnAt(1).headerText = "Nombre:";

   theDataGrid.getColumnAt(2).width = 0.45*gridWidth;
   theDataGrid.getColumnAt(2).headerText = "Apellidos:";

   theDataGrid.getColumnAt(3).width = 0.15*gridWidth;
   theDataGrid.getColumnAt(3).headerText = "Telefono:";

   theDataGrid.setStyle("alternatingRowColors", [0xFFFFFF, 0xF9FCFD]);
}



   
//Funcion para insertar un dato
bot_insertar.onRelease=function(){
   if(nombre_txt.text==""){
      nombre_txt.text="Este campo no puede estar vacio";
   }else{
   mdm.Database.MSAccess.runQuery("INSERT INTO ejemplo_agenda (nombre,apellidos,telefono) VALUES ('"+nombre_txt.text+"','"+apellidos_txt.text+"',"+telf_txt.text+")");
   consulta();
   nombre_txt.text="";
   apellidos_txt.text="";
   telf_txt.text="";
   }
}   
//Borrado de datos
bot_borrar.onRelease=function(){
   LineaGrid = theDataGrid.selectedIndex;
   if(LineaGrid!=undefined){
      var sqlString:String = "DELETE FROM ejemplo_agenda where id="+theDataGrid.getItemAt(LineaGrid).ID;   
      mdm.Database.MSAccess.runQuery(sqlString);
      theDataGrid.removeItemAt(LineaGrid);   
      consulta();
   
   }

}   

//Edicion de datos
theDataGrid.addEventListener("change", editar);

function editar(Obj) {
   bot_editar.enabled=true;
   //Obtiene los datos de la linea seleccionada
   DatosGrid = Obj.target.selectedItem;
   //Asigna valores de los campos de texto
   nombre_txt.text = DatosGrid.Nombre;
   apellidos_txt.text = DatosGrid.Apellidos;
   telf_txt.text = DatosGrid.Telefono;

}
bot_editar.onRelease=function(){
      LineaGrid = theDataGrid.selectedIndex;
      var sqlString:String = "UPDATE ejemplo_agenda set nombre='"+nombre_txt.text+"', apellidos='"+apellidos_txt.text+"', telefono="+telf_txt.text+" where id="+theDataGrid.getItemAt(LineaGrid).ID;   
      mdm.Database.MSAccess.runQuery(sqlString);   

   consulta();   
   bot_editar.enabled=false;
   nombre_txt.text = "";
   apellidos_txt.text = "";
   telf_txt.text = "";   
   }
   
   //////////FILTRAR CONTENIDO
filtrar_btn.onRelease=function(){
   //Si no hay filtro lo ponemos y cambiamos el texto en el botón
   if (datos.filtered == false){
      datos.filtered = true;
      datos.filterFunc();
      filtrar_btn.label = "Quitar Filtro";
   }
   //Si hay filtro lo quitamos y cambiamos el texto en el botón
   else if (datos.filtered == true){
      datos.filtered = false;
      filtrar_btn.label = "Filtrar";
   }
   
   //Función filterFunc de Flash
   datos.filterFunc = function(registro:Object) {
      return(registro.Nombre.nodeValue == texto_filtro.text);
   };
}

   //////////FIN DE FILTRO
   
bot_editar.enabled=false;
layoutGUI();
consulta();//Obtenemos los datos de la bbdd   




El codigo de la funcion del filtro "que no funciona" especificamente es este:

Código ActionScript :

//////////FILTRAR CONTENIDO
filtrar_btn.onRelease=function(){
   //Si no hay filtro lo ponemos y cambiamos el texto en el botón
   if (datos.filtered == false){
      datos.filtered = true;
      datos.filterFunc();
      filtrar_btn.label = "Quitar Filtro";
   }
   //Si hay filtro lo quitamos y cambiamos el texto en el botón
   else if (datos.filtered == true){
      datos.filtered = false;
      filtrar_btn.label = "Filtrar";
   }
   
   //Función filterFunc de Flash
   datos.filterFunc = function(registro:Object) {
      return(registro.Nombre.nodeValue == texto_filtro.text);
   };
}

   //////////FIN DE FILTRO



Gracias por su ayuda !!!