Вы столкнулись с одной из самых больших проблем DataGrid и AdvancedDataGrid. Я абсолютно ненавижу то, как сложно добиться удобного отображения содержимого ячейки. По причинам, не очевидным сразу, значения узкого поля будут отображаться в очень широких ячейках, в то время как широкий контент и заголовки будут срезаны.
По какой-то причине это особенно актуально для первого и последнего столбцов.
Единственное решение, которое я нашел, - установить свойство minWidth для столбцов, и мне нужно сначала просмотреть данные, чтобы найти самые широкие выбросы в этих столбцах и убедиться, что они удобно помещаются. Другое решение, которое помогает, - иметь фиктивные столбцы слева и справа, которым заданы width, minWidths и maxWidths очень маленького размера, скажем 5, что, кажется, позволяет реальным столбцам в середине «дышать» немного лучше.
<mx:columns>
<mx:DataGridColumn id="leftDummy" width="5" minWidth="5" maxWidth="5"/>
<!-- Your "real" columns here, with minWidth assignments -->
<mx:DataGridColumn id="rightDummy" width="5" minWidth="5" maxWidth="5"/>
</mxcolumns>
Но будьте осторожны. Если вы устанавливаете ширину столбца, она интерпретируется не как буквальное значение или фактический процент, а как некая половинчатая пропорция. Я могу только предположить, что процедуры определения размера столбца устают вычислять и останавливаются на какой-то «разумной» интерпретации ширины столбца, что, конечно, в большинстве случаев оказывается совершенно неразумным.
В данный момент я настолько разочарован, что подумываю о выборе стороннего продукта, ElfGrid, который решает эти и другие проблемы. Посмотрите документацию, особенно ElfColumnUtils, в которой есть несколько очень удобных методов решения этих проблем. Это также довольно быстро в тестах, которые я провел.
person
Robusto
schedule
21.05.2010