今天第一天发帖,求支持求鼓励~
今天看到有人问ExtJs有没有 智能联想的功能
答案是肯定,怎么实现呢?
利用Ext里面的Ext.form.field.ComboBoxView 控件,
是的,是一个下拉菜单一样的东西。
那么我们要实现智能联想的功能,有几步:
1:你首先要让你的combo可编辑,即 editable:true
这里有一点要声明的是,ExtJs的文档很详细,当你不懂哪个配置的时候搜索下,会得到你满意的答案的。
2:可编辑之后呢,当你输入的时候,你需要让combo出现个下拉菜单
这个就比较麻烦了,首先你要先创建个Ext.data.Store,你要让人家只能提示,你总要给人家数据吧。
这里我先用静态数据示范,就是直接写死的数据,当然从数据库查也是可以的。
3:有数据之后,你要设置下queryMode:"local"
因为我是本地写死的数据,所以查询模式应该是local。
4:combo右边有个下拉按钮,这个是我们不需要的,所以去掉,方法:hideTrigger:true
以上是思路。
下面是代码:
Ext.onReady(function(){
var store=Ext.create("Ext.data.Store",{
fields:[{
name:"t1",
type:"auto"
},{
name:"t2",
type:"auto"
}],
data:[{
t1:"aa",
t2:"bb"
},{
t1:"bb",
t2:"bb"
},{
t1:"cc",
t2:"bb"
}],
autoLoad:true
});
Ext.create("Ext.panel.Panel",{
title:"aa",
width:300,
height:400,
items:[{
xtype:"combo",
hideTrigger:true,
store:store,
displayField: 't1',
valueField: 't2',
queryMode:"local",
editable:true,
triggerAction:"all"
}],
renderTo:Ext.getBody()
}).show();
});