关于ExtJs智能联想输入框的实现方法

来源:互联网 发布:js和jquery应用 编辑:程序博客网 时间:2024/05/22 08:26

今天看到有人问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();});

0 0
原创粉丝点击