javascript - populating a dojo dijit combo box -
मेरे पास डिजीट कॉम्बो बॉक्स है जो cust.Html पृष्ठ में decalared है:
& Lt; div वर्ग = "कस्टडिजित" & gt; & Lt; div class = "formContainer" & gt; & Lt; div डेटा-डोजो-टाइप = "dijit.form.form" डेटा-डूजो-संलग्न-बिंदु = "खोजफॉर्मडिजिट" & gt; & Lt; तालिका कोशिकाएं = "5" शैली = "चौड़ाई: 100%; ऊंचाई: 49px;" & gt; & LT; टीआर & gt; & LT; टीडी & gt; & Lt; डेटा का चयन करें- dojo-type = "dijit.form.ComboBox" नाम = "राज्य" डेटा- dojo-id = "comboBoxID2" id = "stateInput" डेटा- dojo- संलग्न-बिंदु = "idResultItemsCB" / & gt; & Lt; br / & gt; एट्रिब्यूट वैल्यू एंटर करें: & lt; इनपुट आईडी = "खोज टेक्स्ट" प्रकार = "टेक्स्ट" डेटा-डोजो-टाइप = "dijit.form.ValidationTextBox" डेटा-डोजो-प्रॉप्स = "नाम: 'खोज टेक्स्ट', ट्रिम करें: सत्य, आवश्यक: सत्य , शैली: 'चौड़ाई: 100%;' / / gt; & Lt; / टीडी & gt; & Lt; / टीआर & gt; & Lt; / तालिका & gt; & Lt; / div & gt; & Lt; / div & gt; & Lt; / div & gt; `
अब इस एचटीएमएल पृष्ठ को जेएस कोड में एक विजेट के रूप में बनाया जा रहा है जैसा कि नीचे दिखाया गया है ... यहां मैं कंबोडिया को आबाद करना चाहता हूं। मुझे कॉम्बो बॉक्स को तैयार करने के लिए फ़ंक्शन बनाया गया है, लेकिन जैसा कि मैं डोजोटुलकिट और डेज़ीट्स के लिए बहुत नया हूं, इसलिए एक टफ़ टाइम है..कुछ एक हो सकता है कृपया मुझे नीचे दिए गए कोड में गलत तरीके से कर रहा हूं। > परिभाषित करें (['dojo / _base / declare', 'dijit / _WidgetBase', 'dijit / _TemplatedMixin', 'dijit / _WidgetsInTemplateMixin', 'डिजीट / रजिस्ट्री', 'डिजिट / फॉर्म / फॉर्म', 'डेज़ीट / 'डोजो / स्टोर / मेमोरी', 'डोजो / डाटा / मदफाइल रीडस्टोर', 'डोजोक्स / ग्रिड /', 'डोजो / लेआउट / कंटेंटपैन', 'डोजो / लेआउट / कंटेंटपेन', 'डोजो / स्टोर / मेमोरी' 'डोजी / स्टोर / मेमोरी', 'डोजो / _बेस / लैंग', 'डोजो / डोजो / डीबेस / लाँग', 'डोजो / _बेस / एरे ',' डोजो / टेक्स्ट! ./ कस्ट / टेम्प्लेट्स / कस्ट-एचटीएम ',' डोजो / पार्सर ',' दिजिट / फॉर्म / कॉम्बो बॉक्स ',' डेजिट / फॉर्म / फिल्टरिंग सिलेक्ट ',' डोजो / डोम रीडी! '] , फ़ंक्शन (घोषित करें, _WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin, रजिस्ट्री, प्रपत्र, फ़िल्टरिंग चयन करें, मान्यकरण पाठ बॉक्स, बटन, सामग्री पृष्ठ, मेमोरी, मदफाइलरेडस्टोर, डेटा ग्रिड , टूलटिप डायलॉग, क्वेरी, क्वेरी टास्क, एट्रीकॉन्फिग, मेमोरी, लैंग, सरणी, कस्टम टेम्प्लेट, पार्सर, कॉम्बो बॉक्स, फ़िल्टरिंग चयन, डोम) {// इस मॉड्यूल (फ़ंक्शन () के लिए आवश्यक सीएसएस फाइलों को लोड करने के लिए बेमेल फ़ंक्शन {var css = [require.toUrl ( "जीआईएस / dijit // सीएसएस / cust.css")]; Var सिर = document.getElementsByTagName ("सिर")। आइटम (0), लिंक; के लिए (var i = 0, il = css.length; i & lt; il; i ++) {link = document.createElement ("लिंक"); Link.type = "text / css"; Link.rel = "स्टाइलशीट"; Link.href = सीएसएस [i] .toString (); head.appendChild (लिंक); } पार्सर.पार्स (); } ()); // मुख्य ग्राहक दिखेगा वर्गास्ट = घोषित ([_ विजेटबेस, _TemplatedMixin, _WidgetsInTemplateMixin], {widgetsInTemplate: true, templateString: custTemplate, map: null, defaultTitle: null, queryTask: रिक्त, क्वेरी: रिक्त, मानचित्र: रिक्त, स्व: नल , _store1: null, _selectorOne: null, postCreate: फ़ंक्शन () {this.inherited (तर्क); this.queryTask = new esri.tasks.QueryTask (this.queryTaskURL); this.query = new esri.tasks.Query () ; This.query.outSpatialReference = this.map.spatialReference; this.query.returnGeometry = true; this.query.outFields = ["id", "Custname", "Status"]; self.cmboxlayer (); this.populateResultsIntoComboBox (मेमरी);}, पॉप्युलेट रिज़ल्ट इनटोम्बोबॉक्स: फ़ंक्शन (मेमोरी) {var स्टेटस्टोर = नई मेमोरी ({डेटा: [{नाम: "अलाबामा", आईडी: "AL"}, {नाम: "अलास्का", आईडी: "AK"} , "नाम": "सीए"}, {नाम: "कोलोराडो", {नाम: "एरिज़ोना", आईडी: "एजे"}, {नाम: "अर्कांसस", आईडी: "एआर"}, {नाम: "कैलिफ़ोर्निया", आईडी: "CA"} आईडी: "सीओ"}, {नाम: "कनेक्टिकट", आईडी: "सीटी"}, {नाम: "डेलावेयर", id: "DE"}]}); var कॉम्बो बॉक्स डायगिट = Registry.byId ("stateInput"); // पर (कॉम्बो बॉक्स डायगिट, "बदलाव", लांग। एचईच (यह, 'कॉम्बो बॉक्स विकल्प चुनाएवेंटहैंडलर')); ComboBoxDigit.store = स्टेटस्टोर; ComboBoxDigit.searchAttr = "title"; ComboBoxDigit.set ('value', stateStore.data [0] .title); }}); वापसी खोज; }); आप पहले से धन्यवाद
मैं जो देख सकता हूं, आप खुद को परिभाषित नहीं करते हैं = यह आपके postCreate फ़ंक्शन में है क्या आपने विजेट तत्काल चरण में कहीं और खुद को परिभाषित किया है?
मैंने यह भी पाया है कि आपने अपना टेम्पलेट नामित किया है, 'कस्टम टेम्प्लेट', और इसके बजाय अपने टेम्पलेट स्ट्रिंग को परिभाषित करने के लिए 'सर्चटप्लेट' का इस्तेमाल किया है।
I आपने इस बेकेल में अपने कोड के काम को छीन लिया है:
केवल एक चीज जो मैं सोच सकती हूं अगर आप सच में parseOnLoad को सेट नहीं किया है:
ParseOnLoad: true या यदि आप टेम्पलेट को पार्स करने के लिए पार्सर.पार्स नहीं बुलाते हैं।
Comments
Post a Comment