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. tcpdump常用命令

    1. 只抓syn包 tcpdump -i eth1 'tcp[tcpflags] = tcp-syn' 2. 只抓ack包 tcpdump -nni xgbe1 dst host 191.168.10 ...

  2. [翻译] CBStoreHouseTransition

    CBStoreHouseTransition What is it? A custom transition inspired by Storehouse iOS app, also support ...

  3. vb6.0如何让窗体跟随鼠标运动

    首先将form的boderstyle属性设为0 Dim movesScreen As Boolean Dim mousX As Integer Dim mousY As Integer Dim cur ...

  4. 放飞App:移动产品经理实战指南

    <放飞App:移动产品经理实战指南> 基本信息 原书名:App savvy:rurning ideas into iPhone and iPad Apps customers really ...

  5. DNS resolving 占用大量日志

    公司内部DNS配置好后,测试解析正常,只是几乎每秒都有无法解析的日志产生.但分析日志时发现,每天的日志都有2G左右.日志中几乎全是类似network unreachable resolving 'ww ...

  6. BC Harry and Magical Computer (拓扑排序)

    Harry and Magical Computer  Accepts: 350  Submissions: 1348  Time Limit: 2000/1000 MS (Java/Others) ...

  7. 【Dijkstra】

    [摘自]:华山大师兄,推荐他的过程动画~   myth_HG 定义 Dijkstra算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径.主要特点是以起始点为中心向外层层扩展,直到扩 ...

  8. hihocoder 1152 Lucky Substrings

    #1152 : Lucky Substrings 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 A string s is LUCKY if and only if t ...

  9. 【php基础】XML,DTD实例

    要求一:能看懂别人写的DTD文件,自己能写更好.例如products.dtd: <!ENTITY AUTHOR "John Doe"> <!ENTITY COMP ...

  10. js获取iframe的parent对象

    使用谷歌浏览器调试代码时无意间发现了一个奇特的问题:从iframe页面调用父级页面的方法,window.parent.text(),出现 Blocked a frame with origin &qu ...