Pregunta

En mi aplicación Flex almaceno las anchuras y VISIBILIDAD de columnas en un archivo XML. Cuando las cargas de aplicaciones se lee desde el archivo XML y establece valores que él columnas según corresponda:

for(i = 0; i < columnsOrder.length; i++){
    newOrder[i] = myDG.columns[Number(columnsOrder[i]) - 1];
    newOrder[i].visible = (Number(columnsVisiblity[i]) == 1);
    newOrder[i].width = Number(columnsWidth[i]);
}
myDG.columns = newOrder;
myDG.invalidateList();

El problema parece estar ajuste de la visibilidad (que establece el campo visible correctamente, pero puede confundir el ancho) ... He tratado de establecer una vez regulada la anchura (fuera del bucle) y antes del bucle también. Se cambia el tamaño de las columnas correctamente si no hago nada con la visibilidad.

¿Alguna idea?

¿Fue útil?

Solución

Añadir una sentencia import en la parte superior de su archivo de clase:

importación mx.core.mx_internal;

A continuación, retire utilizando el espacio de nombres mx_internal, retire el propietario de la columna, cambiar la anchura y luego reasign el padre:

public static function resizeColumn(col:DataGridColumn, size:int):void
    {
        var owner:* = col.mx_internal::owner
        col.mx_internal::owner = null;

        col.width = size;

        col.mx_internal::owner = owner;
    }

Esto debería hacer el truco (bueno, lo hizo para nosotros después de un par de días de la toma de posesión)

Otros consejos

¿Está usted horizontalScrollPolicy establece en false en la cuadrícula de datos?

"Si la propiedad horizontalScrollPolicy de la cuadrícula de datos es falsa, todas las columnas visibles deben ajustar en el área visualizable, y la cuadrícula de datos no siempre respetan la anchura de las columnas si el ancho total de las columnas es demasiado pequeño o demasiado grande para el visualizable zona."

http: //livedocs.adobe .com / flex / 3 / langref / MX / controles / dataGridClasses / DataGridColumn.html # anchura

Yo era capaz de conseguir que funcione mediante una llamada al ciclo anterior en una función dos veces ... la primera vez que añadir las columnas visibles, la segunda vez que establece la anchura correcta. No es la mejor solución, pero no puedo pasar más tiempo en él.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top