问题:
Java代码  收藏代码
  1. var fabircTypeDs = new Ext.data.Store({  
  2.         proxy: new Ext.data.HttpProxy({  
  3.             url: 'province.do'  
  4.         }),  
  5.         reader: new Ext.data.JsonReader({},['pname','pid']),  
  6.         remoteSort: false  
  7.      });  
  8.      fabircTypeDs.load();  
  9.   
  10.  formPanel = new Ext.form.FormPanel({            
  11.                 bodyStyle:'padding-top:6px;',//设置控件边类型            
  12.                 defaultType:'textfield',//FormPanel内元素默认类型             
  13.                 labelAlign:'right',//设置控件的标题对齐方式  
  14.                 labelWidth:55,// 指定标签的默认长度  
  15.                 labelPad:0,// 标签与字段录入框之间的空白  
  16.                 frame:true,//设置控件边角圆弧过度        
  17.                 defaults:{//FormPanel默认设置  
  18.                     allowBlank:true,  
  19.                     width:158  
  20.                 },             
  21.                 items:[  
  22.                     new Ext.form.ComboBox({  
  23.                         name:'provincename',  
  24.                         fieldLabel:'省份',  
  25.                         store:fabircTypeDs,  
  26.                         blankText:'全部',  
  27.                         emptyText:'全部',  
  28.                         mode:'remote',  
  29.                         editable:false,  
  30.                         selectOnFocus:true  
  31.                     }),  

 上面是我创建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"吧

来源:

posted on 2017-10-04 05:00  Sharpest  阅读(1644)  评论(0编辑  收藏  举报