Pregunta

Estoy tirando datos XML para determinar qué columnas son visibles, y las anchuras de cada columna. Ancho de mi cuadrícula de datos puede cambiar su sinces en un lado de un HDividedBox. La parte visibilidad funciona, pero establecer el ancho está causando dolores de cabeza. Aquí está el código:

for(loop through column data retrieve from XML)
{ 
    newData[i] = dg.columns[Number(columnsOrder[i]) - 1];
    newData[i].visible = (Number(columnsVisibility[i]) == 1);
    newData[i].width = Number(columnsWidth[i]);
    trace(newData[i].headerText + " w:" + newData[i].width.toString() + " v:" + newData[i].visible.toString());
}
dg.columns = newData;
dg.invalidateList();

En la traza de la anchura es correcta para los dos primeros puntos, sin embargo, su aparecer como "20" por una vez consecutiva ...

Date w:240 v:true
Title w:184 v:true
Requestor w:20 v:true
Approved By w:20 v:true
Category w:20 v:false
Status w:20 v:false
Priority w:20 v:false

Cuando el número de salida (columnsWidth [i]) se muestra como el valor correcto así que algo raro está sucediendo en la asignación de la anchura.

estado mirando esto para unas cuantas horas, y han intentado varias cosas para tratar de solucionarlo fue en vano.

¿Fue útil?

Solución

  
    

Ancho de mi cuadrícula de datos puede cambiar su sinces en un lado de un HDividedBox.

  

Ese es el problema allí mismo.

I enfrentado el mismo problema con Flex 2 y Flex anchura de 3 DataGridColumn siempre que la anchura de la cuadrícula de datos no se fijó. La única solución que tenía era para fijar la anchura de la cuadrícula de datos o interruptor para AdvancedDataGrid u otros componentes similares.

Otros consejos

He hecho lo mismo en AdvancedDataGrid y funciona. Pruebe ajustando estos valores

  horizontalScrollPolicy="on"
  width="100%

y, a continuación añadir columnas Esto debería funcionar con HDividedBox.

Usted puede lograr esto, es lo que creo que es un error en la misma cuadrícula de datos.

Si define minWidth = "0" y horizontalScrollPolicy = "{} ScrollPolicy.AUTO" en la cuadrícula de datos, a continuación, puede crear objetos DataGridColumn con anchos fijos y tiene que ser obedecido correctamente.

Sin embargo, parece que hay todavía un problema con la columna final, cuando la cuadrícula de datos es aún más grande que la suma de todos los anchos fijos, se estirará el DataGridColumn último out.

Se puede evitar esto mediante la adición de una columna en blanco al final sin texto de cabecera, etc.

Ok - nos hemos encontrado con esto nosotros mismos, mientras que la construcción de soporte para varios modos de ancho de columna. Sólo una pequeña golosina de la información - si usted desea establecer anchos de forma explícita, asegúrese de hacer algo como esto:

var oldPolicy:String = grid.horizontalScrollPolicy;
grid.horizontalScrollPolicy ="on"
//set your widths here
grid.horizontalScrollPolicy =oldPolicy;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top