2011-05-04 46 views

回答

1

生成序列号意味着什么?基于什么?

编辑:

<fx:Script> 

private function myLabelFunc(item:Object, col:AdvancedDataGridColumn):String 
{ 
var itemIndex:int = dataprovider.getItemIndex(item); 
return itemIndex.toString(); 
} 

<mxml> 
<mx:AdvancedDataGridColumn headerText="Serial No." labelFunction="myLabelFunc"/> 
+0

根据DataGrid中能排... – 2011-05-04 09:24:06

+0

其工作正常,但如何排序的记录数的只是升序排序...不管用.. – 2011-05-04 11:02:13

0

我的建议提供了数据网格dataProvider项目的当前位置。你也可以添加itemIndex ++来启动你的sn。从一开始。

1

您可以尝试类似如下:

<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:mx="library://ns.adobe.com/flex/mx" 
    xmlns:s="library://ns.adobe.com/flex/spark"> 
    <fx:Script> 
    <![CDATA[ 
     private function serialLabelFunction(item:String, column:DataGridColumn):String 
     { 
      var index:int = dataProvider.getItemIndex(item); 
      if (index > -1) 
       return (index + 1).toString(); 
      return ""; 
     } 
    ]]> 
    </fx:Script> 
    <fx:Declarations> 
     <s:ArrayCollection id="dataProvider"> 
      <s:source> 
       <fx:Array> 
        <fx:String>First</fx:String> 
        <fx:String>Second</fx:String> 
        <fx:String>Third</fx:String> 
        <fx:String>Fourth</fx:String> 
        <fx:String>Fifth</fx:String> 
       </fx:Array> 
      </s:source> 
     </s:ArrayCollection> 
    </fx:Declarations> 
    <mx:DataGrid dataProvider="{dataProvider}" horizontalCenter="0" verticalCenter="0"> 
     <mx:columns> 
      <mx:DataGridColumn headerText="Serial" labelFunction="serialLabelFunction" /> 
      <mx:DataGridColumn headerText="Data" /> 
     </mx:columns> 
    </mx:DataGrid> 
</s:Application> 
0

排序不起作用,因为有该列确实没有数据。所以Datagrid排序类不能做任何事情。你需要编写你自己的排序功能。

使用DataGrid的sortCompareFunction:

private function sortSerial(item1:Object, item2:Object):int 
{ 
    var value1:int = arrayCollectionn.getItemIndex(item1); 
    var value2:int = arrayCollectionn.getItemIndex(item2); 

    if (value1 < value2) { 
     return -1; 
    } else if (value1 > value2) { 
     return 1; 
    } else { 
     return 0; 
    } 
} 

MXML

<mx:AdvancedDataGridColumn headerText="Serial No." labelFunction="myLabelFunc" sortCompareFunction="sortSerial"/>