HI, En flex, j'ai une grille de données avec 22 colonnes. Je montre initialement toutes les colonnes. La largeur de chaque colonne droite est uniforme. Maintenant, quand je change la visiblité de quelques colonnes, la largeur de chaque colonne varie. Comment puis-je maintenir une largeur de colonne uniforme pour chaque colonne, qu'il y ait ou non des colonnes invisibles? ... Comment puis-je obtenir le nombre de colonnes visibles. la propriété ColumnCount renvoie le nombre total de colonnes et non le nombre de colonnes visibles.Comment définir la même largeur de colonne dans un DataGrid dans flex au moment de l'exécution?
1
A
Répondre
0
Les colonnes sont un tableau, de sorte que vous pouvez ajouter du code à n'importe quelle fonction les rendant invisibles et faire une boucle sur ce tableau en réglant leur largeur. Vous aurez juste besoin de garder un œil sur votre largeur de Datagrids, et le nombre de colonnes visibles, que vous pouvez également faire avec une boucle. Voici un code non testé qui devrait vous rapprocher de votre objectif:
function makeAColInvisible():void{
//code you use to set col invisible
var visColCount:number = 0;
for each (var item:DataGridColumn in myDataGrid.columns){
if(item.visible == true){
visColCount++;
}
}
for each (var item2:DataGridColumn in myDataGrid.columns){
item2.width = myDataGrid.width/visColCount;
}
}