태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

ria/flex2009/03/25 17:01
원인을 보자면, 숫자가 String 으로 되어있어, 원하는 형태의소트가 안되는거다.

1, 3, 5, 7, 11, 15, 21 이렇게 있다고 치면,

1, 11, 15, 21, 3, 5, 7 이렇게 결과가 나온다.

간단히 Function으로 해결할수 있는데,

/**
 * 정렬시 숫자 비교 함수
 * 
 * @param obj1, obj2
 */
private function sortNumeric(obj1:Object, obj2:Object):int
{
var value1:Number = (obj1.no == '' || obj1.no == null) ? null : new Number(obj1.no);
var value2:Number = (obj2.no == '' || obj2.no == null) ? null : new Number(obj2.no);
if( value1 < value2 ) return -1;
else if (value1 > value2) return 1;
else return 0;
}


<mx:DataGridColumn dataField="no" headerText="NO" sortCompareFunction="sortNumeric"/>


간단하다 ㅎㅎ



이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by THLIFE.net

TRACKBACK http://thlife.net/trackback/852 관련글 쓰기

  1. [Flex] DataGrid과 DataGridColumn  삭제

    2009/06/23 12:27TRACKBACK FROM 영원의 헤아림

    DataGrid는 다음과 같이 간편하게 표형식의 데이터를 화면에 출력할 수 있습니다. <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" fontSize="12" creationComplete="{init()}" backgroundGradientAlphas="[1.0, 1.0]" background..

댓글을 달아 주세요

  1. 초보

    흠...저는 왜 정렬이 안될까요...ㅠㅠ
    리턴으로 1과-1을 리턴하는건 그냥 수를 써넣기 위함인가요??

    2009/10/16 18:11 [ ADDR : EDIT/ DEL : REPLY ]
  2. 초보

    비교할 데이터필드를 넣어주는거군요..근데 여전히 1과-1과 0은 먼지 잘...
    순서를 나타내는건가요??1이면 바꾸고 -1이면 머하구 이런건가..흠.

    2009/10/16 18:16 [ ADDR : EDIT/ DEL : REPLY ]
  3. 1, -1 이건 단지 크기를 비교하기위한 것입니다.
    obj1, obj2 중 왼쪽 값이 크면, 1, 오른쪽이 크면 -1, 같으면 0

    API에서는
    0 is both numbers are NaN. 1 if only a is a NaN. -1 if only b is a NaN. -1 if a is less than b. 1 if a is greater than b.
    이렇게 설명하고 있습니다.

    저 함수는 ObjectUtil.numericCompare()를 찾아보시면, 쉽게 이해 되실것 같네요.

    참고>
    http://livedocs.adobe.com/flex/3/langref/mx/utils/ObjectUtil.html#numericCompare%28%29

    2009/10/24 08:20 [ ADDR : EDIT/ DEL : REPLY ]