Comunidad de diseño web y desarrollo en internet online

Ayuda con Datagrid

Citar            
MensajeEscrito el 18 Ago 2007 03:20 am
Que tal

Necesto la ayuda de un capo urgente

tengo un Datagrid que carga la informacion de un xml y al cargar x informacion, pero el datagrid genera un Scrollbar vertical

Pero la gran pregunta es como puedo hacer que dependiendo de toda la informacion que ponga dentro del xml el DATAGRID me genere un ScrollBar horizontal y vertical.

para que se hagan una idea

mi xml contiene lo siguiente:

el xml esta dentro de una carpeta llamada infacad llamado calendario.xml

<?xml version="1.0" encoding="utf-8" ?>
<fechas>

<dia
curso="5A"
lenguaje="30 agosto"
matematica="24 agosto"
ingles="29 agosto"
compsociedad=""
compnaturaleza="10agosto"
educacion=""
tecnologia="17agosto"
/>

</fechas>


Y todo esto lo leo de un flash que se genera por codigo actionscript

import mx.controls.gridclasses.DataGridColumn;

/*------------------------------------------------------------------------*/

//-------------------------------------Cargamos el XML--------------------------//
calendario = new XML();
calendario.ignoreWhite = true;
calendario.onLoad = function(success) {
if (success) {
//Creamos los arrays donde iran los datos
largo = calendario.firstChild.childNodes.length;

cursos = new Array(largo);
lenguajes = new Array(largo);
matematicas = new Array(largo);
ingless = new Array(largo);
compsociedads = new Array(largo);
compnaturalezas = new Array(largo);
educacions = new Array(largo);
tecnologias = new Array(largo);

//Llenar los arrays
for (i=0; i<largo; i++) {
cursos[i] = calendario.firstChild.childNodes[i].attributes.curso;
lenguajes[i] = calendario.firstChild.childNodes[i].attributes.lenguaje;
matematicas[i] = calendario.firstChild.childNodes[i].attributes.matematica;
ingless[i] = calendario.firstChild.childNodes[i].attributes.ingles;
compsociedads[i] = calendario.firstChild.childNodes[i].attributes.compsociedad;
compnaturalezas[i] = calendario.firstChild.childNodes[i].attributes.compnaturaleza;
educacions[i] = calendario.firstChild.childNodes[i].attributes.educacion;
tecnologias[i] = calendario.firstChild.childNodes[i].attributes.tecnologia;
}
llenarDataGrid();
} else {
trace("No se pudo cargar el XML");
}
};
calendario.load("infacad/calendario.xml");


/*----------------------------------- FUNCIONES ------------------------------------------*/

function llenarDataGrid() {
//Atacheamos nuetro componente
attachMovie("DataGrid","misCeldas",1);
//Propiedades
misCeldas.setStyle("textAlign","left");
misCeldas.setStyle("themeColor",0xD8CFBE);
misCeldas.setStyle("hGridLines",true);
misCeldas._x = 4;
misCeldas._y = 60;
misCeldas.rowHeight = 60;
misCeldas.setSize(498,325);
misCeldas.editable = false;
misCeldas.headerHeight = 40;
misCeldas.resizableColumns = true;
misCeldas.selectable = true;
misCeldas.showHeaders = true;
misCeldas.sortableColumns = true;
misCeldas.vScrollPolicy = "auto";

//Le asignamos un proveedor de datos
losDatos = new Array();
misCeldas.dataProvider = losDatos;

//Metemos los datos en el ComboBox
for (i=0; i<cursos.length; i++) {
losDatos.addItem({Curso:cursos[i], Lenguaje:lenguajes[i], Matemática:matematicas[i], Inglés:ingless[i], Sociedad:compsociedads[i], Naturaleza:compnaturalezas[i], Educación:educacions[i], Tecnología:tecnologias[i]});
}
//Propiedades de las columnas
misCeldas.getColumnAt(0).width = 42;
misCeldas.getColumnAt(0).cellRenderer = "TextAreaRenderer";
misCeldas.getColumnAt(1).width = 60;
misCeldas.getColumnAt(1).cellRenderer = "TextAreaRenderer";
misCeldas.getColumnAt(2).width = 75;
misCeldas.getColumnAt(2).cellRenderer = "TextAreaRenderer";
misCeldas.getColumnAt(3).width = 43;
misCeldas.getColumnAt(3).cellRenderer = "TextAreaRenderer";
misCeldas.getColumnAt(4).width = 64;
misCeldas.getColumnAt(4).cellRenderer = "TextAreaRenderer";
misCeldas.getColumnAt(5).width = 70;
misCeldas.getColumnAt(5).cellRenderer = "TextAreaRenderer";
misCeldas.getColumnAt(6).width = 68;
misCeldas.getColumnAt(6).cellRenderer = "TextAreaRenderer";
misCeldas.getColumnAt(7).width = 65;
misCeldas.getColumnAt(7).cellRenderer = "TextAreaRenderer";
}



Entonces si agrego informacion al xml seguira creciendo hacia al derecha y para bajo pero solo me genera un scrollbar para lo de abajo pero no para el lado derecho es decir un scroll horizontal

Hay solucion para esto

LEs dejos los archivos fuentes aca

http://www.flamestudio.cl/temp/dataGrid.rar

Gracias desde Ya!!!

Help

Por chaleco

22 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Nov 2007 09:50 pm
Hola

la respuesta esta en el mismo codigo.

misCeldas.vScrollPolicy = "auto";

esa linea indica que se muestre el scroll vertical si es necesario. Esta propiedad puede tener 3 valores
"auto", "on", "off". Cuando esta en "auto" se muestra solo si es necesario. En las otras dos opciones se indica por si o por no sin importar si es necesario.

ahora para lo que vos pedis tendrias que usar "hScrollPolicy" de esta forma:

misCeldas.hScrollPolicy = "auto";

y eso es todo...

Por Skiros

0 de clabLevel



 

firefox

 

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