Ширина столбца Flex DataGrid: один столбец, чтобы управлять ими всеми? - PullRequest
0 голосов
/ 16 ноября 2010

У меня есть Flex 4, mx: DataGrid со следующими установленными (соответствующими) свойствами:

width="100%"
horizontalScrollPolicy="off"

У меня есть minWidth для всех DataGridColumns и ширина для одного из них. Если я просто максимизирую / уменьшу отображение (в браузере или автономном флеш-плеере) приложения, столбцы будут приятно увеличиваться и уменьшаться. Но если вы возьмете край приложения и перетащите его, чтобы увеличить его, только один столбец станет действительно большим. При повторном перетаскивании размера один столбец остается большим, но все остальные столбцы уменьшаются.

Это ошибка в Flex DataGrid или мне просто не хватает ключевого свойства (или свойств в столбцах сетки данных), которое можно задать, чтобы все столбцы увеличивались или уменьшались при перетаскивании-увеличении приложения?

Ответы [ 3 ]

1 голос
/ 02 марта 2012

Решил эту проблему следующим образом:

при созданииПолное добавление

{  
.....
grd_Principal.addEventListener(ResizeEvent.RESIZE, resizeGrid);
grd_Principal.dispatchEvent(new ResizeEvent(ResizeEvent.RESIZE));
...
}

protected function resizeGrid(event:ResizeEvent):void
{
    grd_Principal.horizontalScrollPolicy = 'on';                // datagrid
    ..... your DataGridColumn
    dgc_nCdId.width = grd_Principal.width * 0.06;               //datagridcolumn in percent
    dgc_Excluir.width = 20;                                                     //normal
    dgc_cNmUsuario.width = grd_Principal.width * 0.226;

    grd_Principal.horizontalScrollPolicy = 'off';               
}

1 голос
/ 16 ноября 2010

Это неприятная аномалия, если не фактическая ошибка, в том, как Flex делает сетки данных. В защиту Adobe выяснить, как изменить размер всех столбцов, не является тривиальной задачей.

Способ, которым я всегда справлялся, это сделать фиктивный столбец в конце с minWidth 4 и без указания ширины. Тогда это становится «расширяемой колонной», которая устраняет слабость. Затем я позаботился о том, чтобы оставшимся столбцам было достаточно места для отображения их данных и средств визуализации их заголовков с самого начала, указав каждому minWidth и width. Единственный раз, когда у меня возникают проблемы, это если слишком много столбцов для отображения в разрешенном пространстве, в этом случае вы получаете горизонтальную полосу прокрутки и все (или большинство) ставки отключены.

0 голосов
/ 14 апреля 2011

Попробуйте захватить событие, установите для HorizontalScrollPolicy значение «Вкл.», Разрешив Flex изменить размер самих столбцов, а затем для параметра HorizontalScrollPolicy снова установить значение «Выкл.»

...