سؤال

في فليكس أنا باستخدام التعليمات البرمجية التالية للسماح للفرز في DataGrid (وترحيلها البيانات وفرزها جانب الخادم).

        private function headerReleaseHandler(event:DataGridEvent):void
        {
            var column:DataGridColumn = DataGridColumn(event.currentTarget.columns[event.columnIndex]);

            if(this.count>0)
            {
                if(this.query.SortField == column.dataField)
                {
                    this.query.SortAscending = !this.query.SortAscending;
                }
                else
                {
                    this.query.SortField = column.dataField;
                    this.query.SortAscending = true;
                }
                this.fill();
            }

            event.preventDefault();
        }

وهذا يعمل تماما، إلا أن الأسهم التي تشير إلى الفرز لا يظهر. كيف يمكنني تحقيق ذلك؟

وشكرا! / نيلز

هل كانت مفيدة؟

المحلول

وهناك مثال هنا إذا كان هذا هو ما كنت تبحث عن: <وأ href = "http://blog.flexexamples.com/2008/02/28/displaying-the-sort-arrow-in-a-flex-datagrid-control-without-having-to-click-a-column / "يختلط =" noreferrer "> http://blog.flexexamples.com/2008/02/28/displaying-the-sort-arrow-in-a-flex-datagrid-control-without-having-to-click- على عمود /

ويبدو أنك تحتاج إلى تحديث مجموعة يستخدمه dataprovider الخاص بك.

نصائح أخرى

ولقد واجهت نفس المشكلة وكان الحل الوحيد الذي وجدت لتجاوز في DataGrid وخلق العرف واحد. هنا هي الطبقة:

public class DataGridCustomSort extends DataGrid
{

    public function DataGridCustomSort()
    {
        super();

        addEventListener(DataGridEvent.HEADER_RELEASE,
            headerReleaseHandlerCustomSort,
            false, EventPriority.DEFAULT_HANDLER);
    }       

    public function headerReleaseHandlerCustomSort(event:DataGridEvent):void {
        mx_internal::sortIndex = event.columnIndex;
        if (mx_internal::sortDirection == null || mx_internal::sortDirection == "DESC")
            mx_internal::sortDirection = "ASC";
        else
            mx_internal::sortDirection = "DESC";
        placeSortArrow();
    }

}

وعليك أن تدعو على وجه التحديد طريقة placeSortArrow () عندما تحصل على الحدث HEADER_RELEASE وتعيين مؤشر العمود والمعلومات الاتجاه.

في رمز أعلاه ماذا "هذا" الرجوع إلى هو عليه في DataGrid لأنني في حيرة من this.query.SortField، وأنا على افتراض "هذا" و "الاستعلام" هي كائنات المخصصة الخاصة بك. ولماذا فحص لالعد. ما يهم هو أن.

والتحيات -Mohan

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top