Comunidad de diseño web y desarrollo en internet online

Datagrid tardon

Citar            
MensajeEscrito el 15 Abr 2005 12:38 pm
pues mi problema es que tengo un datagrid que la primera vez que le cargo los datos no funciona si voy al menu de seleccion y le vuelvo a dar ya funciona.
Tiene un cellrenderer de un objeto loader para insertar una foto.

Código :

function llenarDataGrid() {
   //Atacheamos nuetro componente
   attachMovie("DataGrid", "misCeldas", 50);
   
   //Propiedades
   misCeldas._x=72;
   misCeldas._y=80;
   misCeldas.setSize(510, 340);
   misCeldas.editable = false;
   misCeldas.headerHeight = 16;
   misCeldas.resizableColumns = false;
   misCeldas.selectable = true;
   misCeldas.showHeaders = true;
   misCeldas.sortableColumns = false;


var cargar:Number = new Number();
cargar = setInterval(cargarDatos(), 1000);//ejecutará la función .2 de segundos después de pintarse de hacerse el llamado
                              //lo cual es imperceptible...además de que es el tiempo suficiente para hacerlo.

      
   //Propiedades de las columnas
   misCeldas.rowHeight = 80;
   misCeldas.getColumnAt(0).width = 30;
   misCeldas.getColumnAt(1).width = 120;
   misCeldas.getColumnAt(2).width = 260;
   misCeldas.getColumnAt(3).width = 100;
   
   //CellRenderer
   misCeldas.getColumnAt(1).cellRenderer = "LoaderRenderer";


}

//funcion cargarDatos
function cargarDatos(){
//Le asignamos un proveedor de datos
losDatos = new Array();
misCeldas.dataProvider = losDatos;
//Metemos los datos en el ComboBox
   for (i=0; i<titulo.length; i++) {
      losDatos.addItem({Indice:indice[i], Thumb:thumb[i], Titulo:titulo[i], Procedencia:procedencia[i]});
   }
   clearInterval(cargar);//para asegurarnos de que no vuelva a suceder esto
}


He probado con un setInterval que he encontrado por el foro pero sigue sin funcionar.
Un saludo.

Por rolosan777

8 de clabLevel



 

Madrid

firefox
Citar            
MensajeEscrito el 15 Abr 2005 02:26 pm
A ver, no entiendo exactamente que es lo que pasa.

¿Quieres decir que el DataGrid no se llena pero si al cabo de 1 segundo? :shock:

Por Elecash

Claber

8126 de clabLevel

37 tutoriales
19 articulos
13 ejemplos

  Bastard Operators From Hell Desarrollador de GAIA Premio_Secretos Héroes

BarnaCity

clabbrowser
Citar            
MensajeEscrito el 15 Abr 2005 03:15 pm
es mejor utilizar el evento complete del Datagrid para saber si ya se termino de dibujar...y es mejor usar createClassObject y no attachMovie, y pasar un objeto con las propiedades de inicializacion.

Por _david

565 de clabLevel


1 articulo

Genero:Masculino  

Bogota, Colombia

firefox
Citar            
MensajeEscrito el 17 Abr 2005 10:24 am
No lo que quiero decir es que la primera vez no es capaz de dibujar el datagrid pero con el setInterval tampoco.
Sin embargo si le vuelvo a dar al menu que elije los datos a cargar en el dataGrid ya funciona bien para todas las opciones.
El problema esta en la primera vex que cargo el dataGrid.
Voy a mirar lo que me dice _david
Gracias

Por rolosan777

8 de clabLevel



 

Madrid

msie
Citar            
MensajeEscrito el 17 Abr 2005 12:01 pm
_david podrias poner un ejemplo de createClassObject con el objeto que comentas y eso.
No he encontrado el evento complete del DataGrid
Gracias por adelantado

Por rolosan777

8 de clabLevel



 

Madrid

firefox
Citar            
MensajeEscrito el 18 Abr 2005 01:54 pm
Mi opinion es que los Componentes cuando los empiezas a recargar un poco o poner demasiados en una misma pantalla... buah... resultados raros y lentos.

Por Josepzin

208 de clabLevel



 

España

firefox
Citar            
MensajeEscrito el 18 Abr 2005 07:06 pm
Una ayudita po favor que en cuanto le das dos veces va de lujo, no me puedo conformar con la ultima opinion, ni siquiera cargo muchos datos.
para verlo http://www.7dd.net/otromundo

Le dais al catalogo, elejis un producto, da el error, volved a dar al catalogo y elejis cualquier producto y va bien.

gracias por adelantado a todos

Por rolosan777

8 de clabLevel



 

Madrid

firefox
Citar            
MensajeEscrito el 18 Abr 2005 07:26 pm
es asi:

createClassObject(mx.controls.DataGrid,"miDG",getNextHighestDepth());

y lo del evento complete: tienes razon, ese es del componente Window...perp con lo anterior debe funcionar.

Por _david

565 de clabLevel


1 articulo

Genero:Masculino  

Bogota, Colombia

firefox
Citar            
MensajeEscrito el 20 Abr 2005 07:13 am
Pues sigue sin funcionar lo habeis probado en la direccion que indico arriba
Gracias por adelantado a todos

Por rolosan777

8 de clabLevel



 

Madrid

firefox
Citar            
MensajeEscrito el 20 Abr 2005 08:08 am
Pues si, yo lo acabo de probar y me sale una cosa rara, como si no estuviese el DataGrid o como si se generase mal.

¿El código de la pagina es el mismo que hay arriba todavia?

Sinceramente yo creo que con el setInterval no vas a arreglar nada, así que mejor quítalo. ¿Funciona bien en local? Pruebalo en el IDE de Flash pero cogiendo los datos desde el servidor, pon unos trace() a ver que te saca.

Más no te puedo decir.

Deu!! ^^

Por Elecash

Claber

8126 de clabLevel

37 tutoriales
19 articulos
13 ejemplos

  Bastard Operators From Hell Desarrollador de GAIA Premio_Secretos Héroes

BarnaCity

clabbrowser
Citar            
MensajeEscrito el 20 Abr 2005 08:23 am
Si en local funciona mal tambien, aunque no cambie nada y de error porque no encuentra el xml, no forma correctamente el DataGrid, pero no se porque puede ser, en el segundo intento lo forma correctamente

Por rolosan777

8 de clabLevel



 

Madrid

firefox
Citar            
MensajeEscrito el 20 Abr 2005 08:51 am
Pues no se aqui es dejo el codigo actual completo, el cellRenderer esta echo con la clase loadercellrenderer de Joan-Garnet, haber si alguien ve el fallo:

Código :

import mx.controls.gridclasses.DataGridColumn;
descripcion._visible = false;
var cargamos : String;
cargamos = _parent.cargaxml;
//cargamos = "djembex.xml";
trace ("cargamos " + cargamos);
Stage.scaleMode = "noScale";
//Cargamos el XML
System.useCodepage = true;
calendario = new XML();
calendario.ignoreWhite = true;
calendario.onLoad = function(success) {
   if (success) {
      //Creamos los arrays donde iran los datos
      largo = calendario.firstChild.childNodes.length;
      trace("largo = "+largo);
      _global.indice = new Array(largo);
      _global.referencia = new Array(largo);
      _global.titulo = new Array(largo);
      _global.procedencia = new Array(largo);
      _global.thumb = new Array(largo);
      _global.imagen = new Array(largo);
      _global.imagen1 = new Array(largo);
      _global.contenido = new Array(largo);
      _global.parche = new Array(largo);
      _global.funda = new Array(largo);
      _global.cuerpo = new Array(largo);
      _global.tamano = new Array(largo);
      _global.peso = new Array(largo);
      _global.precio = new Array(largo);
      _global.sonido = new Array(largo);
      var donde:String = calendario.firstChild.childNodes[0].attributes.procedencia;
      donde_txt.text = donde;
   //Llenar los arrays
      for (i=0; i<largo; i++) {
         //hay dos indices porque uno es para mostrar y el otro para el array
         indice[i] = i+1;
         referencia[i] = calendario.firstChild.childNodes[i].attributes.referencia;
         titulo[i] = calendario.firstChild.childNodes[i].attributes.titulo;
         procedencia[i] = calendario.firstChild.childNodes[i].attributes.procedencia;
         thumb[i] = calendario.firstChild.childNodes[i].attributes.thumb;
         imagen[i] = calendario.firstChild.childNodes[i].attributes.imagen;
         imagen1[i] = calendario.firstChild.childNodes[i].attributes.imagen1;
         contenido[i] = calendario.firstChild.childNodes[i].attributes.contenido;
         parche[i] = calendario.firstChild.childNodes[i].attributes.parche;
         funda[i] = calendario.firstChild.childNodes[i].attributes.funda;
         cuerpo[i] = calendario.firstChild.childNodes[i].attributes.cuerpo;         
         tamano[i] = calendario.firstChild.childNodes[i].attributes.tamano;
         peso[i] = calendario.firstChild.childNodes[i].attributes.peso;
         precio[i] = calendario.firstChild.childNodes[i].attributes.precio;
         sonido[i] = calendario.firstChild.childNodes[i].attributes.sonido;
         }
      llenarDataGrid();
      //evento al pulsar en un registro
      var clicar = new Object();
      clicar.change = function(evento){
      // introducir aquí el código propio
       var controles:Number = evento.target.selectedItem["Indice"];
      _global.control = controles-1;
      trace("  control = "+control+"  Indice = "+indice[0]+"  controles =  "+controles);
      trace("pulsado "+ control);
      misCeldas._visible = false;
      llenarDescripcion();
      }
      misCeldas.addEventListener("change", clicar);
      } else {
      donde_txt.text = "Ha ocurrido un error.";
      trace("No se pudo cargar el XML");
   }
};
calendario.load(cargamos);
/************* FUNCIONES ****************/
function llenarDataGrid() {
   trace("llenarDataGrid: ejecutada");
   //Atacheamos nuetro componente
   //attachMovie("DataGrid", "misCeldas", 50);
   
   //createClassObject
   createClassObject(mx.controls.DataGrid,"misCeldas",getNextHighestDepth());
   //Estilos
   
   misCeldas.setStyle("color", "0x000000");
   misCeldas.setStyle("background", "0xffE4E1");
   misCeldas.setStyle("arrow", "0xFF0000");
   misCeldas.setStyle("highlight", "0xffffff");
   misCeldas.setStyle("darkshadow", "0xffffff");
   misCeldas.setStyle("face", "0x33FFFF");
   misCeldas.setStyle("scrollTrackColor", "0x666666");

   misCeldas.setStyle("themeColor","0x666666");
   //misCeldas.setStyle("borderColor", "0xffffff");
   misCeldas.setStyle("color", "0x000000");//color del texto
   misCeldas.setStyle("disabledColor", "0xffffff");
   misCeldas.setStyle("fontFamily", "verdana");
   misCeldas.setStyle("fontSize", "10");
   //misCeldas.setStyle("fontWeight", "bold");
   misCeldas.setStyle("highlightColor", "0xffffff");
   //misCeldas.setStyle("marginLeft", "15");
   //misCeldas.setStyle("marginRight", "15");
   //misCeldas.setStyle("textIndent", "5");
   
   //Propiedades
   misCeldas._x=72;
   misCeldas._y=80;
   misCeldas.setSize(510, 340);
   misCeldas.editable = false;
   misCeldas.headerHeight = 16;
   misCeldas.resizableColumns = false;
   misCeldas.selectable = true;
   misCeldas.showHeaders = true;
   misCeldas.sortableColumns = false;

   cargarDatos();


   //Propiedades de las columnas
   misCeldas.rowHeight = 80;
   misCeldas.getColumnAt(0).width = 30;
   misCeldas.getColumnAt(1).width = 120;
   misCeldas.getColumnAt(2).width = 260;
   misCeldas.getColumnAt(3).width = 100;
   
   //CellRenderer
   misCeldas.getColumnAt(1).cellRenderer = "LoaderRenderer";


}


//funcion cargarDatos
function cargarDatos(){
//Le asignamos un proveedor de datos
losDatos = new Array();
misCeldas.dataProvider = losDatos;
//Metemos los datos en el ComboBox
   for (i=0; i<titulo.length; i++) {
      losDatos.addItem({Indice:indice[i], Thumb:thumb[i], Titulo:titulo[i], Procedencia:procedencia[i]});
   }
clearInterval(cargar);//para asegurarnos de que no vuelva a suceder esto
}

//Funcion llenarDescripcion
function llenarDescripcion(){
descripcion._visible=true;
misCeldas._visible = false;
descripcion.swapDepths(51);;

system.useCodepage = true;
stop();
trace("control  "+control);
descripcion.referencia_txt.text = referencia[control];
descripcion.titulo_txt.text = titulo[control];
descripcion.procedencia_txt.text = procedencia[control];
descripcion.baseimagen.loadMovie(imagen[control]);
descripcion.baseimagen1.loadMovie(imagen1[control]);
descripcion.contenido_txt.text = contenido[control];
descripcion.parche_txt.text = parche[control];
descripcion.funda_txt.text = funda[control];
descripcion.cuerpo_txt.text = cuerpo[control];
descripcion.tamano_txt.text = tamano[control]+" cm";
descripcion.peso_txt.text = peso[control]+" Kg";
descripcion.precio_txt.text = precio[control]+" Euros";
descripcion.sonido_btn.onRelease = function() {
   getURL(sonido[control], _blank);
};
//_root.precarga(_root.baseini.base.baseimagen, imagen[control], _parent.barragale, _parent.textogale);
//_root.precarga(_root.baseini.base.baseimagen1, imagen1[control], _parent.barragale, _parent.textogale);
//baseimagen.loadMovie("http://www.dcmadridnorte.com/grupomedra/inmobiliaria/"+imagen[control]);
descripcion.atras_btn.onRelease = function() {
   descripcion._visible = false;
   misCeldas._visible = true;
};

descripcion.comprar_btn.onRelease=function(){
   var ref:String;
   ref = descripcion.referencia_txt.text;
   trace("pulsado comprar_btn "+ref);
   _global.compra.push(ref);
};
}


Gracias una vez mas a todos.

Por rolosan777

8 de clabLevel



 

Madrid

firefox

 

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