Flex ComboBox، القيمة الافتراضية وموفري البيانات

StackOverflow https://stackoverflow.com/questions/35224

  •  09-06-2019
  •  | 
  •  

سؤال

لدي فليكس ComboBox التي يتم ملؤها بواسطة أ dataprovider كل شيء على ما يرام...

أرغب الآن في إضافة الخيار الافتراضي "- حدد عنصرًا --" في الفهرس 0، كيف يمكنني القيام بذلك مع الاستمرار في استخدام dataprovider؟لم أر أي أمثلة على ذلك، ولكن لا أستطيع أن أتخيل أن هذا الأمر صعب ...

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

المحلول

إذا لم تكن تريد أن يكون العنصر الافتراضي قابلاً للتحديد، فيمكنك استخدام prompt ممتلكات ComboBox وتعيين selectedIndex إلى 1.سيظهر ذلك السلسلة التي قمت بتعيينها propmt إلى القيمة المحددة حتى يختار المستخدم قيمة أخرى.ومع ذلك، لن يظهر في قائمة الخيارات.

نصائح أخرى

لقد واجهت هذه المشكلة اليوم وأردت مشاركة الحل الخاص بي.

لدي ComboBox يحتوي على ArrayCollection الذي يحتوي على كائنات باعتباره مزود البيانات الخاص به.عند تشغيل التطبيق، فإنه يستخدم RemoteObject للخروج والحصول على ArrayCollection/Objects.في معالج الأحداث الخاص بي لهذا الاستدعاء، قمت فقط بإلحاق كائن آخر ببداية ArrayCollection وتحديده:

var defaultOption:Object = {MyLabelField: "Select One"};
myDataProvider.addItemAt(defaultOption, 0);
myComboBox.selectedIndex = 0;

هذا ما يبدو عليه ComboBox كمرجع:

<mx:ComboBox id="myComboBox" dataProvider="{myDataProvider}" labelField="MyLabelField" />

الطريقة التي تعاملت بها مع هذا في الماضي هي إنشاء مجموعة جديدة لتكون بمثابة مزود البيانات لمربع التحرير والسرد، ثم أستمع إلى التغييرات في المصدر الأصلي (باستخدام mx.BindingUtils.ChangeWatcher).عندما أحصل على مثل هذا الإشعار، أقوم بإعادة إنشاء موفر البيانات المخصص الخاص بي.

أتمنى أن أعرف طريقة أفضل للتعامل مع هذا الأمر؛سأراقب هذا السؤال فقط في حالة.

يمكن استخدام هذا الكود التالي للقيمة الافتراضية المحددة لـ combobox

var index:String = "foo";
for(var objIndex:int = 0; objIndex < comboBox.dataProvider.length; objIndex++) {
  if(comboBox.dataProvider[objIndex].label == index)
  {
     comboBox.selectedIndex = objIndex;
     break;
  }
}
<mx:ComboBox id="comboBox" dataProvider="{_pageIndexArray}" />
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top