Código :
//Importamos las clases para el Iterator y los Estilos
import mx.data.components.datasetclasses.DataSetIterator
import mx.styles.CSSStyleDeclaration
//Estilo de la cabecera del grid
var headerStyles = new CSSStyleDeclaration();
headerStyles.setStyle("textAlign", "center");
procesos_grid.setStyle("headerStyle", headerStyles);
procesos_grid.setStyle("themeColor", "haloBlue");
//Declaramos variables
insert_lv = new LoadVars();
recibir_lv = new LoadVars();
var ordenarHacia:String = new String("asc");
var ordenarPor:String = new String();
var miXML:XML = new XML();
var datosProcesos:Array = new Array();
var alOrdenar:Object = new Object();
var alClicar:Object = new Object();
/***************************** EMPEZAMOS *********************************/
//Cargamos el XML
miXML.ignoreWhite = true;
miXML.onLoad = function(success){
//Cargamos y llenamos el array
if (success){
for (i=0; i<miXML.firstChild.firstChild.childNodes.length; i++){
datosProcesos.addItem({Apellido: miXML.firstChild.firstChild.childNodes[i].childNodes[0].firstChild,
Nombre: miXML.firstChild.firstChild.childNodes[i].childNodes[1].firstChild,
//Utilizamos parseInt() para convertir los textos a número
Telefono: parseInt(miXML.firstChild.firstChild.childNodes[i].childNodes[2].firstChild),
Email: parseInt(miXML.firstChild.firstChild.childNodes[i].childNodes[3].firstChild)});
}
//Asignamos al DataSet y al DataGrid
datos.items = datosProcesos;
datos.filtered = false;
procesos_grid.dataProvider = datos.dataProvider;
//Propiedades del DataGrid
procesos_grid.getColumnAt(0).width = 150;
procesos_grid.getColumnAt(1).width = 130;
procesos_grid.getColumnAt(2).width = 40;
procesos_grid.getColumnAt(3).width = 80;
procesos_grid.getColumnAt(0).setStyle("textAlign", "left");
procesos_grid.getColumnAt(1).setStyle("textAlign", "left");
procesos_grid.getColumnAt(2).setStyle("textAlign", "right");
procesos_grid.getColumnAt(3).setStyle("textAlign", "right");
//Deshabilitamos ordenación de las columnas, pero no las columnas
for (i=0; i<3; i++){
procesos_grid.getColumnAt(i).sortOnHeaderRelease = false;
}
}
}
miXML.load("http://www.elecash.org/blog/wp-images/flash/datasetphp/mostrar.php");
/**************************** FUNCIONES *******************************/
function insertar() {
insert_lv.apellido = apellido_txt.text;
insert_lv.nombre = nombre_txt.text;
insert_lv.telefono = telefono_txt.text;
insert_lv.email = email_txt.text;
insert_lv.sendAndLoad("insertar.php", recibir_lv, "POST");
}
/**************************** EVENTOS *******************************/
recibir_lv.onLoad = function(){
//Asignamos al DataSet y al DataGrid
datosProcesos.splice(0, datosProcesos.length);
datos.clear();
datos.filtered = false;
procesos_grid.dataProvider = datos.dataProvider;
_root.miXML.load("mostrar.php");
}
// ORDENAMOS
alOrdenar.headerRelease = function(objeto){
//Recogemos la ordenación actual
miOrdenacion = datos.getIterator();
//Cogemos el nombre de la columna
ordenarPor = objeto.target.getColumnAt(objeto.columnIndex).columnName;
if (ordenarHacia == "asc"){
miOrdenacion.sortOn([ordenarPor], 1);
ordenarHacia = "des";
}
else if (ordenarHacia == "des"){
miOrdenacion.sortOn([ordenarPor], 2);
ordenarHacia = "asc";
}
//Aplicamos el nuevo orden
datos.setIterator(miOrdenacion);
}
procesos_grid.addEventListener("headerRelease", alOrdenar);
// FILTRAMOS
alClicar.click = function(objeto){
if (objeto.target == filtrar_btn){
//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) {
var ape_str:String = new String(registro.apellido);
return(ape_str == maxMem_txt.text);
}
}
else if (objeto.target == insertar_btn){
insertar();
}
}
filtrar_btn.addEventListener("click", alClicar);
insertar_btn.addEventListener("click", alClicar); 