最近在做项目时遇到一个修改中学代码的的问题。由于历史原因,中学代码有六千多条数据。数据量太大,装载有时会出现错误,而且不利于使用。解决方法:combobox可编辑,数据两个字符后再load store。
代码如下:
var zxyxStore = new Ext.data.Store({ url : pkustuStatusBkxj.virUrl + 'jpf/basicinfo/modifyStuBasicInfo/getMiddleSchoolInfoBKJX.do', reader : new Ext.data.JsonReader({ root : 'rows', id : 'returnvalue', totalProperty : 'totalNum' }, _everyHMRecordSaved), sortInfo : { field : 'returnvalue', direction : 'ASC' } var zxyxmHMCB = new Ext.form.ComboBox({ id : 'zxyxm_cb' + divId, fieldLabel : '中学毕业院校', store : zxyxStore, displayField : 'displaytext', valueField : 'returnvalue', minChars : 2, selectOnFocus : true, anchor : '-15', editable : true, forceSelection : true, listWidth : 175, hideTrigger : 'true', queryParam : "middleSchollKey", selectOnFocus : true });
minchars:2 表示只有数据两个字符时combobox 才响应。对于已经装载完成的store,minchars可以控制combobox开始过滤的字数。
queryParam:'middleSchollKey' 相当于在zxyxStore中添加了zxyxStore.baseParams .middleSchollKey.
将当前combobox的输入值赋值给middleSchollKey。这个属性实现的前提是combobox可编辑。
Java程序中得到这个参数的方法:
request.getParameter("middleSchollKey");
OK ,这个问题终于解决了。这个也可以通过对combobox监听事件来实现。不过不如这个来的简单直接。