这是个简单的例子,只需要简单的解释下,按步就班,从简单到复杂!
例子由两部分组成:lcombo.html 和 lcombo.js.
lcombo.html
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd" >
- <html>
- <head>
- <meta http-equiv="Content-Type" content= "text/html; charset=utf-8" >
- <link rel="stylesheet" type= "text/css" href= "../extjs-2.0/resources/css/ext-all.css" >
- <script type="text/javascript" src= "../extjs-2.0/adapter/ext/ext-base.js" ></script>
- <script type="text/javascript" src= "../extjs-2.0/ext-all-debug.js" ></script>
- <script type="text/javascript" src= "lcombo.js" ></script>
- <!-- A Localization Script File comes here -->
- <script type="text/javascript" >
- Ext.onReady(LCombo.app.init, LCombo.app);
- </script>
- <title>Linked Combos Example</title>
- </head>
- <body>
- </body>
- </html>
这是ext运用的最小html!
不要忘记改变ext类库和资源的引用来部署你的ext!
lcombo.js
- /**
- * Ext 2.0 Linked Combos Tutorial
- * by Jozef Sakalos, aka Saki
- * extjs.com/learn/Tutorial:Linked_Combos_Tutorial_for_Ext_2
- */
- // reference local blank image
- Ext.BLANK_IMAGE_URL = '../extjs-2.0/resources/images/default/s.gif' ;
- Ext.namespace('LCombo' , 'LCombo.countries' , 'LCombo.cities' );
- LCombo.countries = [
- ['USA' , 'United States of America' ]
- ,['D' , 'Germany' ]
- ,['F' , 'France' ]
- ,['GB' , 'Great Britain' ]
- ];
- LCombo.cities = [
- [1, 'USA' , 'New York' ]
- ,[2, 'USA' , 'Cleveland' ]
- ,[3, 'USA' , 'Austin' ]
- ,[4, 'USA' , 'Los Angeles' ]
- ,[5, 'D' , 'Berlin' ]
- ,[6, 'D' , 'Bonn' ]
- ,[7, 'F' , 'Paris' ]
- ,[8, 'F' , 'Nice' ]
- ,[9, 'GB' , 'London' ]
- ,[10, 'GB' , 'Glasgow' ]
- ,[11, 'GB' , 'Liverpool' ]
- ];
- // create application
- LCombo.app = function () {
- // do NOT access DOM from here; elements don't exist yet
- // private variables
- // private functions
- // public space
- return {
- // public methods
- init: function () {
- var form = new Ext.FormPanel({
- renderTo:document.body
- ,width: 400
- ,height: 300
- ,style:'margin:16px'
- ,bodyStyle:'padding:10px'
- ,title:'Linked Combos'
- ,defaults: {xtype:'combo' }
- ,items:[{
- fieldLabel:'Select Country'
- ,displayField:'country'
- ,valueField:'cid'
- ,store: new Ext.data.SimpleStore({
- fields:['cid' , 'country' ]
- ,data:LCombo.countries
- })
- ,triggerAction:'all'
- ,mode:'local'
- ,listeners:{select:{fn:function (combo, value) {
- var comboCity = Ext.getCmp( 'combo-city' );
- comboCity.setValue('' );
- comboCity.store.filter('cid' , combo.getValue());
- }}
- }
- },{
- fieldLabel:'Select City'
- ,displayField:'city'
- ,valueField:'id'
- ,id:'combo-city'
- ,store: new Ext.data.SimpleStore({
- fields:['id' , 'cid' , 'city' ]
- ,data:LCombo.cities
- })
- ,triggerAction:'all'
- ,mode:'local'
- ,lastQuery:''
- }]
- });
- }
- };
- }(); // end of app
- // end of file