2010-07-20 28 views
5

Tôi đang sử dụng kéo/thả mặc định trên Flex DataGrid, tuy nhiên, dữ liệuGrid chính nó có một itemrenderer. Hình như:Xác định proxy kéo khi sử dụng itemRenderer trên DataGrid

public class FlashFileDataGridRenderer extends Label{ 
    public function FlashFileDataGridRenderer(){ 
     super(); 
    } 
override protected function updateDisplayList (unscaledWidth:Number, unscaledHeight:Number):void { 
     super.updateDisplayList(unscaledWidth, unscaledHeight); 
    this.setStyle("paddingLeft", "3"); 
     if (data instanceof FlashEntryBean) { 
    if ((data.cutFlag)) { 
    setStyle("color", "#AAAAAA"); 
    } 
    else 
    setStyle("color", "#000000"); 
    } 

Đó là áp dụng cho tất cả các mục trong DataGrid. Điều này không còn hiển thị proxy với alpha thấp hơn khi được kéo. Tôi muốn để có thể giữ lại phong cách đó, làm thế nào tôi có thể xác định nếu mặt hàng cụ thể này đang được áp dụng itemrenderer. Tôi đang nghĩ nếu tôi có thể xác định xem đối tượng có phải là một proxy hay không, sau đó làm mờ văn bản.

Cảm ơn!

Trả lời

0

Hãy thử di chuyển setStyle cuộc gọi đến overriden phương pháp tập hợp dữ liệu

override public function set data(t:Object):void 
{ 
    super.data = t; 
    if (data instanceof FlashEntryBean) { 
    if (data.cutFlag) 
     setStyle("color", "#AAAAAA"); 
    else 
     setStyle("color", "#000000"); 
    } 
} 
0

Không chắc bạn đang sử dụng phiên bản SDK nào nhưng trong 3.5 nó chắc chắn giữ lại màu văn bản xám trong proxy được kéo.

+0

Khi bạn có tùy chỉnh itemRenderer vào mục được rê đến, nó sẽ có phong cách tương tự như một trong itemRenderer quy định, không xám. Đó là vấn đề ở đây. –

Các vấn đề liên quan