Wie generiere ich eine Seriennummer mit labelFunction in Datagrid?
-
28-10-2019 - |
Frage
Wie generiere ich eine Seriennummer mit labelFunction in Datagrid?
Lösung
Was bedeutet es, eine Seriennummer zu generieren?Basierend auf was?
Bearbeiten:
<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"/>
Andere Tipps
Sie können Folgendes ausprobieren:
<?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>
Mein Vorschlag enthält die aktuelle Position des Elements im Datagrids-Datenprovider.Sie können auch itemIndex ++ hinzufügen, um Ihr sn zu starten.Beginnen Sie mit eins.
Die Sortierung funktioniert nicht, da in dieser Spalte wirklich keine Daten vorhanden sind.Daher können Datagrid-Sortierklassen den Trick nicht basierend auf nichts ausführen.Sie müssen Ihre eigene Sortierfunktion schreiben.
Verwenden Sie 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"/>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow