我想擴展DataGrid組件,以便在行表中顯示行號(只讀)列。我遇到了這篇文章http://www.cflex.net/showFileDetails.cfm?ObjectID=735,但它依賴於每行唯一的數據,以便它可以索引到數組中。如果數據不是唯一的(如空格),則不起作用。我怎樣才能實現呢?具有行號列的Flex DataGrid
2
A
回答
-1
我能夠通過實現自定義的itemRenderer要做到這一點,RowNumberRenderer.as
package com.domain
{
import mx.collections.IList;
import mx.controls.Label;
import mx.controls.listClasses.ListBase;
public class RowNumberRenderer extends Label
{
public function RowNumberRenderer()
{
super();
}
override public function set data(value:Object):void
{
super.data = value;
this.text = String(IList(ListBase(listData.owner).dataProvider).getItemIndex(data) + 1);
}
}
}
0
確保dataProvider具有唯一的列或屬性,那麼如果您不願意,則不顯示該列/屬性。 的關鍵是數據提供程序
-1
如何瞭解以下信息:
RendererRowIndexPlusOne.as
package
{
import mx.controls.Label;
import mx.utils.StringUtil;
import mx.utils.ObjectUtil;
public class RendererRowIndexPlusOne extends Label
{
public override function set data(item:Object):void {
super.data = item;
trace('listData.label ' + listData.label);
trace('listData.rowIndex ' + listData.rowIndex);
trace('listData.columnIndex ' + listData.columnIndex);
trace('listData.owner ' + listData.owner);
text = String(listData.rowIndex + 1);
}
}
}
2
這爲我工作:
<mx:Label xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import mx.controls.AdvancedDataGrid;
private var handleDataChangedEnabled:Boolean = false;
override public function set data(value:Object):void {
super.data = value;
if (!handleDataChangedEnabled) {
addEventListener("dataChange", handleDataChanged);
}
}
public function handleDataChanged(event:Event):void {
this.text = String(listData.rowIndex + (listData.owner as AdvancedDataGrid).verticalScrollPosition + 1);
}
]]>
</mx:Script>
當然,您將不得不將AdvancedDataGrid更改爲DataGrid。
乾杯。
0
只要使用這個類作爲您的itemRenderer: RowNumColumnRenderer.as
package
{
import mx.collections.IList;
import mx.controls.AdvancedDataGrid;
import mx.controls.Label;
import mx.controls.listClasses.ListBase;
public class RowNumColumnRenderer extends Label
{
override public function set data(value:Object):void
{
super.data = value;
if (listData != null)
this.text = (AdvancedDataGrid(listData.owner).itemRendererToIndex(this) + 1).toString();
}
}
}
相關問題
- 1. Flex DataGrid:只顯示一列中具有特定值的行
- 2. Flex DataGrid列寬
- 3. Flex DataGrid中的Flex Datagrid
- 4. flex datagrid列拖動
- 5. Flex的DataGrid和發現號一類
- 6. Flex DataGrid列表高亮
- 7. Flex 3 DataGrid列寬問題
- 8. WPF Datagrid行號
- 9. Binding Datagrid行號
- 10. 在Flex DataGrid中刪除空行(Flex 3)
- 11. 具有動態可編輯列的DataGrid
- 12. GWT - 具有整數值的datagrid列
- 13. 如何在Flex中顯示mx Datagrid行中的工具提示?
- 14. 添加拖放到flex中的datagrid列
- 15. Flex的DataGrid列不顯示值
- 16. Flex的DataGrid的自動換行定製
- 17. Flex DataGrid的圓角
- 18. Flex - 按行標籤對DataGrid列進行排序
- 19. datagrid中的編號行
- 20. Flex Datagrid查詢
- 21. Flex - Datagrid ItemRenderer
- 22. Flex DataGrid查詢
- 23. Flex 4 Datagrid Header
- 24. Flex Datagrid事件
- 25. Flex Vertical Datagrid
- 26. flex分頁datagrid
- 27. flex datagrid問題
- 28. 帶有條件鏈接的Flex Datagrid
- 29. 在Flex數據網格中具有不同列數的行
- 30. Flex dataGrid列缺少標題文本