我有一個datagrid,其中包含一個datagridcolumn。如果沒有自定義itemrenderer,我可以使用數據提示功能來顯示自定義數據提示,但現在我想擁有一個自定義項目渲染,用於以不同方式對行着色。因此我擴展了一個標籤並更改了數據方法,但現在我的數據提示功能不再有效。DataGrid中Datagrid中的自定義Itemrender
任何想法?
在此先感謝
塞巴斯蒂安
我有一個datagrid,其中包含一個datagridcolumn。如果沒有自定義itemrenderer,我可以使用數據提示功能來顯示自定義數據提示,但現在我想擁有一個自定義項目渲染,用於以不同方式對行着色。因此我擴展了一個標籤並更改了數據方法,但現在我的數據提示功能不再有效。DataGrid中Datagrid中的自定義Itemrender
任何想法?
在此先感謝
塞巴斯蒂安
我知道這個問題有點古老,但我遇到了同樣的問題,並通過查看標準DataGridItemRenderer類如何解決它。
所以基本上我最終複製該toolTipShowHandler()函數到類(不加任何修改),實現IDropInListItemRenderer接口並添加了幾行到我的渲染器的的commitProperties()函數,這是由爲DataGridItemRenderer啓發,太。
希望這會有所幫助。
只是把我的頭頂部,也許讓你自定義項目渲染延伸的DataGridColumn。這將爲您的項目渲染器提供常規列的所有功能。
我有點遲到派對,但我遇到了這個問題,用圖像的自定義DataGridItemRenderer。在下面的鏈接中所描述的解決方案制定了很好的對我來說:
http://www.kalengibbons.com/blog/index.php/2008/12/displaying-datatips-when-using-an-itemrenderer/
要點是,你重寫項目呈現的updateDisplayList(),並通過調用爲dataTipFunction和/或只使用dataTipField設置的工具提示就像內置的項目渲染器一樣。
複製cbranch給出的鏈接內容。計算器是保持代碼更加可靠使用的itemRenderer
一個有關在使用的DataGridColumn的itemRenderer的不好的事情時,網頁摘要
顯示數據提示的是,你失去的數據提示功能,它通常提供。那麼,這是一種僞造該功能的方法。
首先,像通常那樣將dataTipField或dataTipFunction添加到DataGridColumn。
<mx:DataGridColumn headerText="DataTip"
dataField="name1"
showDataTips="true"
dataTipField="description1" />
然後,在您的itemRenderer中添加以下代碼,以便能夠使用該信息並顯示工具提示。
private function getToolTip():String{
var dg:DataGrid = listData.owner as DataGrid;
var func:Function = dg.columns[listData.columnIndex].dataTipFunction;
if(func != null){
return func.call(this, this.data);
}else if(dg.columns[listData.columnIndex].dataTipField.length){
return data[dg.columns[listData.columnIndex].dataTipField];
}else{
return "";
}
}
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{
super.updateDisplayList(unscaledWidth, unscaledHeight);
this.toolTip = getToolTip();
}
這工作既dataTipFields和dataTipFunctions,讓你對待數據提示列中的同樣的方式,無論您使用的是的itemRenderer與否。唯一的區別在於標籤的位置,但可以通過樣式輕鬆修改。您可以在這裏下載完整的源代碼,以獲得這個工作原理的功能性示例。
的DataGridColumn不擴展UIComponent,甚至的DisplayObject。 – 2009-08-27 15:34:29
啊,是的,這是正確的。嘗試查看DataGridItemRenderer類,在validateProperties方法中有處理數據提示的代碼。您可以在自定義渲染器中實現此功能。 – 2009-08-28 08:16:59