为Flex 2 DataGrid加上行号
2007-10-10 20:58
169 查看
英文原文:http://www.cflex.net/showfiledetails.cfm?ChannelID=1&Object=File&objectID=735
有些时候,我们需要在DataGrid控件中显示当前行的行号,如果DataGrid的数据库源(dataProvider)是一个Collection的话,这个问题就好处理了,只需要在DataGrid中增加一虚拟计算列,通过自定义该列的labelFunction,并在该Function调用getItemIndex中计算当前行的index并加上1就再以字符返回就可以了,注意:这些行号是动态生成的,总是按一定的顺序,并且与其他列的排序没有关系,如果你想让行号随着行的变化而变化的话(通常是对某一列进行排序时),那么你就需要为所有行重新分配行号,这需要在dataProvider中自己用程序来控制,示例代码如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
creationComplete="initApp()">
<mx:Script><![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Alert;
[Bindable]private var _acDP:ArrayCollection;
public function initApp():void
{
var oItem:Object;
_acDP = new ArrayCollection();
oItem = {Album:"The Lost Chord", Artist:"The Moody Blues", Price:"15.99" };
_acDP.addItem(oItem);
oItem = {Album:"Meddle", Artist:"Pink Floyd", Price:"17.99" };
_acDP.addItem(oItem);
oItem = {Album:"Trespass", Artist:"Genesis", Price:"18.99" };
_acDP.addItem(oItem);
}//initApp
private function lfRowNum(oItem:Object,iCol:int):String
{
var iIndex:int = _acDP.getItemIndex(oItem) + 1;
return String(iIndex);
}
]]></mx:Script>
<mx:VBox>
<mx:DataGrid id="dgSource" dataProvider="{_acDP}"
editable="true" >
<mx:columns>
<mx:Array>
<mx:DataGridColumn headerText="Row#" labelFunction="lfRowNum" />
<mx:DataGridColumn headerText="Album" dataField="Album" />
<mx:DataGridColumn headerText="Artist" dataField="Artist" />
<mx:DataGridColumn headerText="Price" dataField="Price" />
</mx:Array>
</mx:columns>
</mx:DataGrid>
</mx:VBox>
</mx:Application>
null
有些时候,我们需要在DataGrid控件中显示当前行的行号,如果DataGrid的数据库源(dataProvider)是一个Collection的话,这个问题就好处理了,只需要在DataGrid中增加一虚拟计算列,通过自定义该列的labelFunction,并在该Function调用getItemIndex中计算当前行的index并加上1就再以字符返回就可以了,注意:这些行号是动态生成的,总是按一定的顺序,并且与其他列的排序没有关系,如果你想让行号随着行的变化而变化的话(通常是对某一列进行排序时),那么你就需要为所有行重新分配行号,这需要在dataProvider中自己用程序来控制,示例代码如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
creationComplete="initApp()">
<mx:Script><![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Alert;
[Bindable]private var _acDP:ArrayCollection;
public function initApp():void
{
var oItem:Object;
_acDP = new ArrayCollection();
oItem = {Album:"The Lost Chord", Artist:"The Moody Blues", Price:"15.99" };
_acDP.addItem(oItem);
oItem = {Album:"Meddle", Artist:"Pink Floyd", Price:"17.99" };
_acDP.addItem(oItem);
oItem = {Album:"Trespass", Artist:"Genesis", Price:"18.99" };
_acDP.addItem(oItem);
}//initApp
private function lfRowNum(oItem:Object,iCol:int):String
{
var iIndex:int = _acDP.getItemIndex(oItem) + 1;
return String(iIndex);
}
]]></mx:Script>
<mx:VBox>
<mx:DataGrid id="dgSource" dataProvider="{_acDP}"
editable="true" >
<mx:columns>
<mx:Array>
<mx:DataGridColumn headerText="Row#" labelFunction="lfRowNum" />
<mx:DataGridColumn headerText="Album" dataField="Album" />
<mx:DataGridColumn headerText="Artist" dataField="Artist" />
<mx:DataGridColumn headerText="Price" dataField="Price" />
</mx:Array>
</mx:columns>
</mx:DataGrid>
</mx:VBox>
</mx:Application>
null
相关文章推荐
- Flex中DataGrid绑定ComboBox ,自动显示行号,增加行,删除行,保存数据
- Flex4 DataGrid自动显示行号
- flex 给DataGrid每行加上tooltip
- FLEX 获取DataGrid行号和列好
- flex DataGrid与CheckBox的使用,表头也加上CheckBox
- FLEX实践—DATAGRID显示行号
- FLEX 获取DataGrid行号和列号示例代码
- flex Datagrid 添加行号
- Flex中显示DataGrid行号(row number)
- FLEX实践—Datagrid保存列模板及自动显示行号
- Flex4 DataGrid实现可复制单元格,同时解决自定义GridItemRenderer出现1009错误的方法
- flex checkbox和combobox作为datagrid的渲染器
- Flex 自定义DataGrid实现根据条目某一属性值改变背景颜色
- flex-DataGrid滚动条特别卡的解决方法
- 每天学一点Flex(1):DataGrid组件分页
- Flex 中给Datagrid表头添加按钮
- Flex的AdvancedDataGrid的Header分隔线与排序按钮隐藏
- flex中ComboBox和datagrid的使用
- flex DataGrid设置超链接
- Flex实现DataGrid的序号列