2011-03-08 5 views
3

편집 가능한 DataGrid가 있습니다. DataGrid의 머리글을 클릭하여 정렬을 적용하면 정상적으로 작동합니다. 그러나 그 후에 DataGrid의 행에서 데이터 값이 변경되면 정렬이 자동으로 적용됩니다. 이 문제를 방지하려면 어떻게해야합니까? 즉 사용자가 DataGrid의 머리글을 클릭하고 사용자가 그리드의 데이터를 수정할 때 정렬을 적용해서는 안되는 경우에만 정렬을 적용해야합니다.Flex 4의 편집 가능한 데이터 그리드에서 자동 정렬을 비활성화하는 방법

답변

4

당신은 sortableColumns에 거짓를 설정하고 데이터 소스에 sorting manually를 수행 headerRelease 이벤트를 처리 할 수 ​​있습니다.

<mx:DataGrid sortableColumns="false" headerRelease="onHeaderRelease(event)" ... 
+0

덕분에, 내 요구 사항은 사용자가 편집 가능한 데이터 그리드의 모든 열, 자동 정렬과 함께 itemEditEnd 이벤트의 불을 수정하는 경우 데이터 그리드의 즉의 모든 열을 편집 한 후 자동 정렬을 중지하는 것입니다. 예를 들어 사용자가 첫 번째 행의 값을 변경하면이 변경 후 수정 된 행이 자동 정렬을 통해 DataGrid의 마지막 행이 될 수 있습니다. 내 질문은이 자동 정렬을 중단 할 수 있다는 것입니다. sortableColumns를 false로 설정하면 사용자가 헤더를 클릭하여 정렬을 중지 할 수 없습니다. – zolo

+0

@zolo : 나는 당신의 질문을 이해로서 당신은 헤더에 처음 클릭 할 때까지, 자동 정렬이 적용되지 않습니다. – splash

+0

그래 난 수동 헤더에있는 시간을 클릭하여 데이터를 정렬 할 수 있습니다 headers.But 사용자를 클릭 한 후 자동 정렬 단지 및 itemEditEnd 후 발사 중지합니다. – zolo

0

여러분이 Flex 4에서이 문제를 묻는 것을 알고 있지만 Flex 3에서 찾은 해결책이 도움이되기를 바랍니다.

나는 또한 똑같은 문제가 있었지만 데이터의 어떤 것이 정렬을 유발해야한다는 것을 깨달았습니다. 그리고 데이터를 [Bindable]로 설정한다는 것이 밝혀졌습니다. 이는 value change dispatch propertyChange 이벤트가 자동으로 발생했음을 알았습니다. 당신이 할 데이터를 확인해야하는 경우

[바인딩은, 사용자 정의 바인딩을 사용 : 이 http://livedocs.adobe.com/flex/3/html/help.html?content=ascomponents_4.html

1

당신의 아이템 에디터의 값을 적용하기 전에 Object(owner).dataProvider.disableAutoUpdate()를 호출합니다. 답장을 보내

관련 문제