2008-08-29 9 views
14

मैं एक फ्लेक्स ComboBox है कि एक dataProvider सब कुछ ठीक है की आबादी हो जाता है ...फ्लेक्स ComboBox डिफ़ॉल्ट मान और dataproviders

मैं अब एक डिफ़ॉल्ट जोड़ने के लिए करना चाहते हैं 0 इंडेक्स, मैं यह कैसे कर सकता हूं और अभी भी डेटाप्रोवाइडर का उपयोग कर सकता हूं? मैंने इस तरह के कोई उदाहरण नहीं देखा है, लेकिन मैं कल्पना नहीं कर सकता कि यह कठिन है ...

उत्तर

35

यदि आपको चयन करने योग्य डिफ़ॉल्ट आइटम की आवश्यकता नहीं है तो आप promptComboBox की संपत्ति का उपयोग कर सकते हैं और selectedIndex से -1 सेट कर सकते हैं। यह उस स्ट्रिंग को दिखाएगा जिसे आपने propmt को चयनित मान के रूप में सेट किया है जब तक उपयोगकर्ता दूसरे को चुनता न हो। हालांकि, यह विकल्पों की सूची में दिखाई नहीं देगा।

+3

के चयनित डिफ़ॉल्ट मान के लिए कोड का पालन करें, यह अभी भी स्पार्क ड्रॉपडाउनलिस्ट के लिए काम करता है - धन्यवाद – danjp

1

जिस तरह से मैंने अतीत में इसका सामना किया है, वह डेटा प्रदाता के रूप में सेवा करने के लिए एक नया संग्रह बनाना है combobox, और फिर मैं मूल स्रोत में परिवर्तन के लिए सुनता हूं (mx.BindingUtils.ChangeWatcher का उपयोग कर)। जब मुझे ऐसी अधिसूचना मिलती है, तो मैं अपना कस्टम डेटा प्रदाता पुन: बना देता हूं।

मेरी इच्छा है कि मैं इस दृष्टिकोण के लिए एक बेहतर तरीका जानता हूं; मैं सिर्फ इस मामले पर इस सवाल की निगरानी करूंगा।

4

मैं आज इस समस्या में आया और अपना समाधान साझा करना चाहता था।

मेरे पास एक कॉम्बोबॉक्स है जिसमें ऑरेक्कोलेक्शन होता है जिसमें ऑब्जेक्ट्स होता है क्योंकि यह डेटाप्रोवाइडर है। जब एप्लिकेशन चलता है, तो यह बाहर निकलने के लिए रिमोट ऑब्जेक्ट का उपयोग करता है और ऐरेकोलेक्शन/ऑब्जेक्ट प्राप्त करता है।

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

यह मेरा ComboBox संदर्भ के लिए कैसा दिखता है:

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

यह कर सकते हैं कि कॉल के लिए अपने ईवेंट हैंडलर में मैं सिर्फ यह ArrayCollection की शुरुआत करने के लिए किसी अन्य वस्तु संलग्न करें और उसका चयन किया है 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}" /> 
संबंधित मुद्दे