- var fabircTypeDs = new Ext.data.Store({
- proxy: new Ext.data.HttpProxy({
- url: 'province.do'
- }),
- reader: new Ext.data.JsonReader({},['pname','pid']),
- remoteSort: false
- });
- fabircTypeDs.load();
- formPanel = new Ext.form.FormPanel({
- bodyStyle:'padding-top:6px;',//設置控件邊類型
- defaultType:'textfield',//FormPanel內元素默認類型
- labelAlign:'right',//設置控件的標題對齊方式
- labelWidth:55,// 指定標簽的默認長度
- labelPad:0,// 標簽與字段錄入框之間的空白
- frame:true,//設置控件邊角圓弧過度
- defaults:{//FormPanel默認設置
- allowBlank:true,
- width:158
- },
- items:[
- new Ext.form.ComboBox({
- name:'provincename',
- fieldLabel:'省份',
- store:fabircTypeDs,
- blankText:'全部',
- emptyText:'全部',
- mode:'remote',
- editable:false,
- selectOnFocus:true
- }),
上面是我創建Store和ComboBox的代碼,想要通過proince.do從數據庫讀取數據,后台采用SpringMVC等框架,現在是頁面出來沒問題,但是
ComboBox的數據沒有加載上,也就是請求根本沒有到達后台,希望哪位能指點一下,我想不到哪里出了問題,mode屬性我也設置了remote。
解決方案:
這里的關鍵點在這里:
fabircTypeDs.load();
mode:'remote',
mode:'local' 或者client
fabircTypeDs.load(); 表示你打開頁面時就將數據取到本地,這樣你下拉列表時就不需要取去服務器取數據,如果你要沒加上這一句的話,你去下拉那個列表時就會動態去服務器取數據, 所以它會顯示一下'loading...',這樣你就明白為什么要設置mode了,mode:'remote'指的是要動態去服務器端拿數據,這樣你就不 能加fabircTypeDs.load(),而mode:'local'是取本地數據的也就是javascirpt(內存)中的數據,這樣當然不要加上 fabircTypeDs.load()啦!
還要指定displayField:"name",valueField:"id"吧
來源:http://www.iteye.com/topic/187723
引用自:http://blog.163.com/xiao_mege/blog/static/72942753201132983543104/
