2012-08-24 15 views
9

मेरे पास कॉम्बो बॉक्स के लिए निम्न कोड है, मैं combobox में चयनित मान कैसे प्राप्त कर सकता हूं और उस मान को चर में लोड कर सकता हूं, और बाद में इसका उपयोग कर सकता हूं।extjs कॉम्बो बॉक्स पर मूल्य कैसे प्राप्त करें?

धन्यवाद

Ext.define('Column', { 
    extend: 'Ext.data.Model', 
    fields: ['data1', 'Data2'] 
}); 

var store = Ext.create('Ext.data.Store', { 
    model: 'Column', 
    autoLoad: true, 
    proxy: { 
     type: 'ajax', 
     url: '/data.xml', 
     reader: { 
      type: 'xml', 
      record: 'result' 
     } 
    } 
}); 

var simpleCombo = Ext.create('Ext.form.field.ComboBox', { 
    store: store, 
    displayField: 'data1', 
    valueField: 'data1', 
    width: 250, 
    labelWidth: 120, 
    fieldLabel: 'select a value', 
    renderTo: 'simpleCombo', 
    queryMode: 'local', 
    typeAhead: true 
}); 
+0

आप जिस एक्सटी का उपयोग कर रहे हैं उसका संस्करण क्या है? – sitifensys

+0

@sitifensys Ext.define & Models के उपयोग के आधार पर यह 4.x – sra

उत्तर

10

सीधे शब्दों में घटना का चयन टिप्पणियों से

var simpleCombo = Ext.create('Ext.form.field.ComboBox', { 
      store: store, 
      displayField: 'data1', 
      valueField: 'data1' , 
      width: 250, 
      labelWidth: 120, 
      fieldLabel: 'select a value', 
      renderTo: 'simpleCombo', 
      queryMode: 'local', 
      typeAhead: true, 
      listeners: { 
       select: function(combo, records) { 
        // note that records are a array of records to be prepared for multiselection 
        // therefore use records[0] to access the selected record 
       } 
     }); 

API Link

अतिरिक्त सामग्री का उपयोग करें:

combobox की multiSelect संपत्ति पर नज़र डालें। आपको परिभाषित डिलीमीटर द्वारा अलग किए गए सभी मान मिलते हैं और चयन ईवेंट आपको एक रिकॉर्ड के साथ एक रिकॉर्ड सरणी देगा। ध्यान दें कि getValue() केवल आपको परिभाषित डिस्प्ले फ़ील्ड देता है जो एक स्ट्रिंग है और रिकॉर्ड ही नहीं। तो iComboValue का उपयोग करके [0] आपको पहला अक्षर देता है। चुने गए रिकॉर्ड का उपयोग चयनित घटनाओं का उपयोग करके हमेशा किया जाना चाहिए। लेकिन आप उन्हें बाद में उपयोग के लिए सरणी में स्टोर कर सकते हैं और इसे किसी भी नए चयन के साथ ओवरराइट कर सकते हैं।

+0

धन्यवाद का कुछ संस्करण होना चाहिए। मैंने रिकॉर्ड का इस्तेमाल किया [0], मुझे त्रुटि मिली। लेकिन जब मैं var iComboValue = simpleCombo.getValue() का उपयोग करने का प्रयास करता हूं; \t \t \t \t Ext.Msg.alert ('हैलो यह शीर्षक है', iComboValue); । यह मेरे लिए काम किया। अगर मैं iComboValue [0] का उपयोग करता हूं, तो यह केवल मुझे चयन विकल्प का पहला अक्षर देता है। मैं एकाधिक चयन कैसे कर सकता हूं और फिर उन चयनित मानों को संग्रहीत कर सकता हूं? धन्यवाद – shiro

+0

@shiro [multiSelect] (http://docs.sencha.com/ext-js/4-1/#!/api/Ext.form.field.ComboBox-cfg-multi चयन करें) की एक नज़र डालें combobox। आपको परिभाषित डिलीमीटर द्वारा अलग किए गए सभी मान मिलते हैं और चयन ईवेंट आपको एक रिकॉर्ड के साथ एक रिकॉर्ड सरणी देगा। ध्यान दें कि getValue() केवल आपको परिभाषित डिस्प्ले फ़ील्ड देता है जो एक स्ट्रिंग है और रिकॉर्ड ही नहीं। तो iComboValue का उपयोग करके [0] आपको पहला अक्षर देता है। चुने गए रिकॉर्ड का उपयोग चयनित घटनाओं का उपयोग करके हमेशा किया जाना चाहिए। लेकिन आप उन्हें बाद में उपयोग के लिए सरणी में स्टोर कर सकते हैं और इसे किसी भी नए चयन के साथ ओवरराइट कर सकते हैं। – sra

+0

'var i = simpleCombo.getValue(); 'एक बेहतर समाधान है। – pllee

7

तुम भी उपयोग कर सकते हैं:

var iComboValue = simpleCombo.getValue(); 
0

आप की कोशिश करनी चाहिए हो सकता है इस

// to get the combobox selected item outside the combo listener 
     simpleCombo.on('change', function (combo, record, index) { 

      alert(record); // to get the selected item 

      console.log(record); // to get the selected item 

     }); 
0

का उपयोग करते समय combo.getValue() (रूप Izhaki बताया गया है), सुनिश्चित करें कि कॉम्बो बॉक्स कॉन्फ़िगर किया गया है बनाने के दुकान मॉडल से प्रासंगिक क्षेत्र का उपयोग करने के लिए सही ढंग से।

एक मूल्य के क्षेत्र और नाम क्षेत्र के साथ स्टोर

var bandsStore = Ext.create('Ext.data.Store', { 
    fields: ['color', 'name'], 
    data : [ 
    {"color": "green", "name": "Green Day"}, 
    {"color": "pink", "name": "Pink Floyd"}, 
    {"color": "purple", "name": "Deep Purple"} 
    ] 
}); 

कॉम्बो मूल्य

}, { 
    xtype: 'combo', 
    id: 'BandsCombo', 
    fieldLabel: 'Band Names', 
    name: 'bandNames', 
    store: bandsStore, 
    displayField: 'name', 
    valueField: 'color' 
}, { 

एक छोटे से खर्च किए गए जबकि आज बाहर काम करने के लिए रंग का उपयोग कर क्षेत्र बॉक्स क्यों मेरे प्रपत्र रखा एक combobox क्षेत्र के लिए शून्य पोस्टिंग। यह समस्या थी। :)