0

列のステータスに従ってデータグリッドの最初の行のデータを修正したいのですが、データのステータスが新しい場合は、インデックス0の最初の行にある必要があり、日付の列に基づいて他のデータグリッドの行を並べ替えます。私はすでに日付のような単一の列に基づいてすべてのデータをソートしています。指定された関数で並べ替えも試みましたが、うまくいきません。

public static function sortDataGridMultiColumn(columnOne: String, columnTwo: String, decending: Boolean, array: ArrayCollection): void {

   var sortThese: Sort = new Sort();
   sortThese.fields = [new SortField(columnOne, false, decending),
   new SortField(columnTwo, false, decending)];
   array.sort = sortThese;
   array.refresh();

}
4

1 に答える 1

0

最初に、この関数を使用してデータ グリッドのデータを並べ替えます

public static function sortDataGrid(columnId:String , decending:Boolean , array:ArrayCollection):void
        {

            var sortThese:Sort = new Sort();            
            sortThese.fields = [new SortField(columnId, false, decending)];
            array.sort = sortThese;             
            array.refresh();    
        }

次に、この関数を使用して、最初のインデックスに必要なデータを手動で設定します。

 public static function sortingNWFDataGrid(arrayCol:ArrayCollection):void 
            {
                var currentIndx:Number = 0;
                for(var i:int = 0 ; i < arrayCol.length; i++){
                    if(arrayCol.getItemAt(i).statusId == UserStatusConstants.NEW_STATUS_ID){
                        currentIndx = i;
                        break;
                    }
                }
                var newObj:Object = new Object();
                newObj = arrayCol.getItemAt(currentIndx) as Object;
                arrayCol.removeItemAt(currentIndx);
                arrayCol.refresh();
                arrayCol.addItemAt(newObj, 0);
                arrayCol.refresh();
            }

より良い解決策または別のアプローチを使用する人は、ここに提供してください。

于 2013-03-06T05:26:27.383 に答える