- Continent
- Region
- Country
Application starting point index.html
<html> <head> <title>ExtJs 4 Cascading Combo Boxes Example using Java Servlet</title> <link rel="stylesheet" type="text/css" href="extjs/resources/css/ext-all.css"> <script type="text/javascript" src="extjs/ext-all-debug.js"></script> <script type="text/javascript" src="app.js"></script> </head> <body></body> </html>
Application JavaScript file app.js
Ext.Loader.setConfig({ enabled: true }); Ext.override(Ext.LoadMask, { onHide: function() { this.callParent(); } }); Ext.application({ name: 'CASCADINGCOMBO', appFolder: 'app', controllers: [ 'Countries' ], launch: function() { Ext.create('Ext.container.Viewport', { items: [ { xtype: 'label', html: '<b>ExtJs 4 Cascading ComboBoxes drill down to a Country</b>' }, { xtype: 'continentSearch', flex: 1 }, { xtype: 'regionSearch', flex: 1 }, { xtype: 'countrySearch', flex: 1 }, ] }); } });
JavaScript source file for the application controller Countries.js
Ext.define('CASCADINGCOMBO.controller.Countries', { extend : 'Ext.app.Controller', //define the stores stores : ['Continents','Regions','Countries'], //define the models models : ['Continent','Region','Country'], //define the views views : ['ContinentSearch','RegionSearch','CountrySearch'], refs: [{ ref: 'myContinentBox', selector: 'continentSearch' }, { ref: 'myRegionBox', selector: 'regionSearch' }, { ref: 'myCountryBox', selector: 'countrySearch' } ], init : function() { this.control({ 'viewport' : { render : this.onPanelRendered }, 'continentSearch' : { select : this.onContinentSelect }, 'regionSearch' : { select : this.onRegionSelect } }); }, onPanelRendered : function() { //just a console log to show when the panel si rendered console.log('The panel was rendered'); }, onContinentSelect : function(obj) { console.log('Continent is selected'); var regionBox = this.getMyRegionBox(); regionBox.getStore().load({ params: {'continent': obj.getValue()}, callback: function(records, operation, success) { console.log(success); } }); regionBox.enable(); regionBox.clearValue(); regionBox.clearInvalid(); var countryBox = this.getMyCountryBox(); countryBox.clearValue(); countryBox.clearInvalid(); countryBox.disable(); }, onRegionSelect : function(obj) { console.log('Region is selected'); var continentBox = this.getMyContinentBox(); var countryBox = this.getMyCountryBox(); countryBox.getStore().load({ params: { 'continent': continentBox.getValue(), 'region': obj.getValue() }, callback: function(records, operation, success) { console.log(success); } }); countryBox.enable(); countryBox.clearValue(); countryBox.clearInvalid(); } });
Click here for next Chapter
No comments:
Post a Comment
NO JUNK, Please try to keep this clean and related to the topic at hand.
Comments are for users to ask questions, collaborate or improve on existing.