Extjs combox的详解

写了哈extjs当中的combox,第一次写,照着网上的例子抄.在上次的例子中,是实现了,可是有一个重大的错误.也就是自己根本没有理解combox从远程服务器获取数据,和本地获取数据有什么不同...所以上次的例子中,运行起来好久得不到数据...

本地获取数据:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Ext.onReady(function () {  
            var store = new Ext.data.Store({  
                proxy: new Ext.data.HttpProxy({ url: "./Admin/Data/ComBoxData.ashx" }),  
                reader: new Ext.data.JsonReader({ totalProperty: "totalProperty", root: "result", fields: [{ name: 'Id' }, { name: 'Text'}] })  
            });  
                   
            store.load();  
            var cb = new Ext.form.ComboBox({  
                id: "cbText",  
                store: store,  
                loadingText: 'loading...',  
                emptyText: "--请选择--",  
                triggerAction: "all",//请设置为"all",否则默认为"query"的情况下,你选择某个值后,再此下拉时,只出现匹配选项,如果设为"all"的话,每次下拉均显示全部选项  
                mode: "local",  
                valueField: "Id",  
                displayField: "Text",  
                selectOnFocus: true,  
                resizable: true,//可以改变大小  
                typeAhead: true, //延时查询  
                typeAheadDelay:3000,  
                editable: true,//可以编辑  
                renderTo: document.body  
            });  
        });

在上述代码中,mode:"local",这个过程就是..先从服务器端获取json数据保存到store对象中,然后再加载到comboBox当中...

第二种远程获取数据:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Ext.onReady(function () {  
    var store = new Ext.data.Store({  
        proxy: new Ext.data.HttpProxy({ url: "./Admin/Data/ComBoxData.ashx" }),  
        reader: new Ext.data.JsonReader({ totalProperty: "totalProperty", root: "result", fields: [{ name: 'Id' }, { name: 'Text'}] })  
          
    });  
          
    Ext.data.Record.create([  
    { name: 'Id', mapping: 'Id' },  
    { name: 'Text', mapping: 'Text' }  
    ]);  
          
    var cb = new Ext.form.ComboBox({  
        id: "cbText",  
        store: store,  
        loadingText: 'loading...',  
        emptyText: "--请选择--",  
        triggerAction: "all", //请设置为"all",否则默认为"query"的情况下,你选择某个值后,再此下拉时,只出现匹配选项,如果设为"all"的话,每次下拉均显示全部选项  
        mode: "remote",  
        valueField: "Id",  
        displayField: "Text",  
        selectOnFocus: true,  
        resizable: true, //可以改变大小  
        //typeAhead: true, //延时查询  
        //typeAheadDelay:3000,  
        editable: true, //可以编辑  
        renderTo: document.body  
    });  
});

这时候,我们要一定要理解ext.data中的record对象和store对象,API中翻译的描述:Store类封装了一个客户端的Record对象的缓存.而load事件是当一笔新的Record加载完毕后触发。Record类不但封装了Record的相关定义信息,还封装了Ext.data.Store里面所使用的Recrod对象的值信息, 并且方便任何透过Ext.data.Store来访问Records缓存之信息的代码。(可选的) 如果使用的是Ext.data.Reader,这是一个Reader能够获取数据对象的数组值创建到Record对象下面的对应的映射项; 如果使用的是Ext.data.JsonReader,那么这是一个javascript表达式的字符串, 能够获取数据的引用到Record对象的下面;

个人理解..

Extjs combox的详解的更多相关文章

  1. Extjs Window用法详解

    今天我们来介绍一下Extjs中一个常用的控件Window.Window的作用是在页面中创建一个窗口,这个窗口作为容器,可以在它里面加入grid.form等控件,从而来实现更加复杂的界面逻辑. 本文的示 ...

  2. Extjs Form用法详解(适用于Extjs5)

    Extjs Form是一个比较常用的控件,主要用来显示和编辑数据的,今天这篇文章将介绍Extjs Form控件的详细用法,包括创建Form.添加子项.加载和更新数据.验证等. 本文的示例代码适用于Ex ...

  3. Extjs Window用法详解 3 打印具体应用,是否关掉打印预览的界面

    Extjs Window用法详解 3 打印具体应用,是否关掉打印预览的界面   Extjs 中的按钮元素 {xtype: 'buttongroup',title: '打印',items: [me.ts ...

  4. Extjs GridPanel用法详解

    Extjs GridPanel 提供了非常强大数据表格功能,在GridPanel可以展示数据列表,可以对数据列表进行选择.编辑等.在之前的Extjs MVC开发模式详解中,我们已经使用到了GridPa ...

  5. ExtJS 4 Grids 详解

    Grid Panel是ExtJS最常用的组件之一,它的功能非常丰富,提供了非常便捷的方法执行排序,分组,编辑数据. Basic Grid Panel 基本表格面板 让我们创建一个简单的表格,这有创建和 ...

  6. ExtJS 4 组件详解

    ExtJS 4 的应用界面是由很多小部件组合而成的,这些小部件被称作"组件(Component)",所有组件都是Ext.Component的子类,Ext.Component提供了生 ...

  7. Extjs Window用法详解 2 打印具体应用

    Extjs 中的按钮元素 { xtype: 'buttongroup', title: '打印', items: [ me.tsbDel = Ext.create('Ext.button.Button ...

  8. Extjs TreePanel API详解

    转自:http://web.qhwins.com/CSS-JS-XML/2011091312092944999107.html config定义{ animate : Boolean, contain ...

  9. Extjs MVC开发模式详解

    Extjs MVC开发模式详解   在JS的开发过程中,大规模的JS脚本难以组织和维护,这一直是困扰前端开发人员的头等问题.Extjs为了解决这种问题,在Extjs 4.x版本中引入了MVC开发模式, ...

随机推荐

  1. IOS 区分缓存 内存 物理存储 逻辑存储

    1. 存储器分为内部存储器(内存)和外部存储器(外存). ①内存 内存是电脑内部临时存放数据的地方,供CPU直接读取,存放在其中的数据要靠电来维持,一旦断电就会丢失.因此,在操作电脑时,应及时地将需要 ...

  2. IOS开发 xcode报错之has been modified since the precompiled header was built

    转载的文章  很实用 IOS开发xcode报错之has been modified since the precompiled header was built 今天做百度地图的时候第一次发现下面错误 ...

  3. dispatch_group_async可以实现监听一组任务是否完成,完成后得到通知执行其他的操作。这个方法很有用,比如你执行三个下载任务,当三个任务都下载完成后你才通知界面说完成的了

    dispatch_queue_t queue=dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, ); dispatch_group_ ...

  4. Access to the path '' is denied.解决方案

    在本地测试正常,但一上传到服务器上的时候,那个就提示Access to the path ‘路径’ is denied.我在网上找了很多资料,最后终于解决了,原来是因为在该文件的上级文件夹没有修改权限 ...

  5. 【Shell脚本学习17】Shell case esac语句

    case ... esac 与其他语言中的 switch ... case 语句类似,是一种多分枝选择结构. case 语句匹配一个值或一个模式,如果匹配成功,执行相匹配的命令.case语句格式如下: ...

  6. NIS客户端限制用户登录

    公司所有账号信息由一台 NIS Server 统一管理,但是有几台 NIS Client 只允许某几个用户登录.这里通过PAM机制来实现该需求. 1. 需要配置的文件 (/etc/pam.d/目录下) ...

  7. 在Mac OS X上安装Ionic

    安装xcode(从app store下载,用于编译调试ios平台app) 安装node.js(npm) 安装ionic(sudo npm install -g ionic) 安装cordova(sud ...

  8. popToViewController的用法(跳转到你想跳转到的那个控制器)

    [self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIn ...

  9. js验证连续两位数字递增或递减和连续三位数字相同

    <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...

  10. 初见,Devexpress

    [绥江一百]http://www.sj100.net                                                  欢迎,进入绥江一百感谢点击[我的小网站,请大家多 ...