Question

Comment générer un numéro de série à l'aide de LabElfunction dans DataGrid?

Était-ce utile?

La solution

Que signifie en générant un numéro de série? Basé sur quoi?

Éditer:

<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"/>

Autres conseils

Vous pouvez essayer quelque chose comme ce qui suit:

<?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>

Ma suggestion fournit une position actuelle de l'élément dans Datagrids Dataprovider. Vous pouvez également ajouter ItemIndex ++ pour démarrer votre SN. commencer à un.

Le tri ne fonctionne pas car il n'y a vraiment pas de données sur cette colonne. Les classes de tri DataGrid ne peuvent donc pas faire l'affaire en fonction de rien. Vous devez écrire votre propre fonction de tri.

Utilisez 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"/>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top