Data Grid İçerisinde Belirli Satırları Etkisizleştirmek
Flex Builder içerisinde Data Grid kullanımı gerçekten birçok işi kolaylaştırıyor, ama bazen Data Grid içerisindeki bazı satırların etkisiz hale getirilmesi gerekebilir. Flex SDK temelde bunu desteklemiyor, ama bu özelliği eklemek bir kaç satır koddan ibaret. İlk olarak yeni bir Actionscript sınıf dosyası oluşturup DataGrid sınıfının özeliklerini alıyoruz.
Satırları etkisiz hale getirmek için DataGrid sınıfının iki metodu yeniden yazmamız gerekiyor. Birincisi mouseEventToItemRenderer() ikincisi ise drawRowBackground() metodu. İlk metot fare işaretçisi data grid satırının üzerinden her geçtiğinde çağırılacaktır. Burada yapılacak işlem ise metot çalıştığında data grid için tanımlanan Array içerisindeki enabled özelliğini denetlemek olacak, eğer değer false ise metot geriye null değerini döndürecek bu sayede ilgili satır etkisiz kılınmış olacak. İkinci metot ise sadece görsel yapıyı etkilemek için, bu metot içerisinde ilgili satırın arka planını gri olarak yeniden çizilmesini sağlayacağız, bu sayede etkisiz olan satırlar rahat bir şekilde ayırt edilebilecek. Bahsi geçen iki metot şu şekilde yapılandırılıyor;
-
override protected function mouseEventToItemRenderer(event:MouseEvent):IListItemRenderer{
-
var listItem:IListItemRenderer =
-
super.mouseEventToItemRenderer(event);
-
-
if (listItem){
-
if (!listItem.data.enabled){
-
return null;
-
}
-
}
-
return listItem;
-
}
-
-
override protected function drawRowBackground(sprite:Sprite,
-
rowIndex:int, y:Number, height:Number, color:uint, dataIndex:int):void{
-
if(!dataProvider[rowIndex].enabled){
-
color = 0xdedede;
-
}
-
super.drawRowBackground(sprite, rowIndex, y, height, color, dataIndex);
-
}
Geriye kalan ise sadece data grid objesi yerine bu objeyi uygulamanızda kullanmak. Uygulamanın bir örneğini ve kaynak kodları aşağıdaki adresten indirebilirsiniz;
Örnek ve Kaynak Kodlar
Kolay Gelsin
Engin Yöyen!
2 Responses to “Data Grid İçerisinde Belirli Satırları Etkisizleştirmek”
Leave a Reply


Merhaba eğer datagrid satırlarını taşınabilir hale getirirsek bug oluşuyor!
Merhaba Mehmet,
kodları kontrol edip buraya son halini ekleyeceğim.