# Sorting DataGrid by column with Roman numerals

**URL:** <https://forum.kirupa.com/t/sorting-datagrid-by-column-with-roman-numerals/247084>\
**Category:** flash\
**Created:** [December 18, 2007, 12:07pm UTC](https://forum.kirupa.com/t/sorting-datagrid-by-column-with-roman-numerals/247084 "2007-12-18T12:07:28Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![taurus76](https://avatars.discourse-cdn.com/v4/letter/t/9f8e36/32.png) [@taurus76](https://forum.kirupa.com/u/taurus76)\
**Post date:** [December 18, 2007, 12:07pm UTC](https://forum.kirupa.com/t/sorting-datagrid-by-column-with-roman-numerals/247084/1 "2007-12-18T12:07:28Z")

</div>

Hi!

I’m really stuck with this problem, I would like to sort my DataGrid colums by a column with Roman numerals.  
I use roman numerals only from II to XVII, so custom ‘converter’ will be enough.  
When I don’t use custom sort, and I click on roman numeral’s header to sort my DataGrid the roman numerals sort like this:  
“II”  
“III”  
“IV”  
“IX”  
“V”

Behaves like a String. This is all I accomplished on a way to create custom sort:

```auto
    
public function order(a, b):Number {

        var name1:String = romToAra(a);
        var name2:String = romToAra(b);

        if (name1<name2) {
            return -1;
        } else if (name1>name2) {
            return 1;
        } else {
            return 0;
        }
    }
    
    public function romToAra(a) {
        switch (a) {
        case "II" :
            a = 2;
            break;
        case "III" :
            a = 3;
            break;
        case "IV" :
            a = 4;
            break;
        case "V" :
            a = 5;
            break;
        case "VI" :
            a = 6;
            break;
        case "VII" :
            a = 7;
            break;
        case "VIII" :
            a = 8;
            break;
        case "IX" :
            a = 9;
            break;
        case "X" :
            a = 10;
            break;
        case "XI" :
            a = 11;
            break;
        case "XII" :
            a = 12;
            break;
        case "XIII" :
            a = 13;
            break;
        case "XIV" :
            a = 14;
            break;
        case "XV" :
            a = 15;
            break;
        case "XVI" :
            a = 16;
            break;
        case "XVII" :
            a = 17;
            break;
        }
        return (a);
    }

    function dataGridFunction(theData) {
        var ref = this;
        //
        theRoot.dataGridMain.dataProvider = theData;

        
        var listener_obj:Object = new Object();
        listener_obj.headerRelease = function(evt_obj:Object) {
            switch (evt_obj.target.columns[evt_obj.columnIndex].columnName) {
            case "column1" :
                theData.sortOn("column1", ref.order);
                break;
            } 
        };
        theRoot.dataGridMain.addEventListener("headerRelease", listener_obj);
        

    }

```

It doesn’t work too good 😉 Is it possible to make it work?

Regards  
Taurus76
