سؤال

أقوم بإنشاء جدول يعرض المعلومات من قاعدة بيانات MySQL ، فأنا أستخدم ForeignKeys في كل مكان لبيانات المرجع المتقاطع.

في الأساس لدي بيانات مع عمود يسمى "نظام". النظام هو int وهذا يمثل هوية شخصية من كائن في جدول آخر. لقد استخدمت lablefunction لترويج الاثنين وإعادة تسمية العمود. لكن الفرز الآن لا يعمل ، أفهم أنه يتعين عليك إنشاء وظيفة فرز مخصصة. لقد جربت مرجعًا عبر الجدولين مرة أخرى ، لكن ذلك يستغرق 30 ثانية لفرز 1200 صف. الآن أنا فقط جاهل فيما يجب أن أجربه بعد ذلك.

هل هناك أي طريقة للوصول إلى تسمية حقل الأعمدة داخل وظيفة الفرز؟

public function order(a:Object,b:Object):int
{
    var v1:String = a.sys;
    var v2:String = b.sys;
    if ( v1 < v2 ){
        trace(-1);
        return -1;
    }else if ( v1 > v2 ){
        trace(1);
        return 1;
    }else {
        trace(0);
        return 0;
    }
}

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

المحلول

تتمثل إحدى طرق التعامل مع هذا في الذهاب عبر الكائنات التي تلقيتها وإضافة التسمية كخاصية على كل منها بناءً على المعرف المرجع. بعد ذلك ، يمكنك تحديد خاصية التسمية الخاصة بك لعرضها في عمود شبكة البيانات بدلاً من استخدام وظيفة التسمية. وبهذه الطريقة ، ستحصل على الفرز كما تتوقع بدلاً من الاضطرار إلى إنشاء وظيفة الفرز الخاصة بك.

نصائح أخرى

الطريقة التي تعمل بها بيانات البيانات والفئات الأخرى القائمة على القائمة هي باستخدام itemrenderers. يتم إنشاء العارضين فقط للبيانات التي تظهر على الشاشة. في معظم الحالات ، هناك الكثير من البيانات في DataProvider مما يظهر على الشاشة.

من المحتمل ألا تعطيك محاولة فرز بياناتك بناءً على شيء يتم عرضه بواسطة DataGrid النتائج التي تريدها.

ولكن ، لا يوجد سبب لا يمكنك استدعاء وظيفة التسمية نفسها على كائنات البيانات الخاصة بك في SortFunction.

طريقة واحدة هي استخدام وظيفة itemTolabel من DataGrid:

var v1:String = dataGrid.itemToLabel(a);
var v2:String = dataGrid.itemToLabel(b);

الطريقة الثانية هي فقط استدعاء الوظيفية بشكل صريح:

var v1:String = labelFunction(a);
var v2:String = = labelFunction(b);

في تجربتي ، وجدت الفرز سريعًا للغاية ، ومع ذلك فأنت سجلات التسجيل أكبر قليلاً من ما أقوم بتحميله عادة في الذاكرة في وقت واحد.

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