`
E,我卡了
  • 浏览: 30374 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ext数据源->store

阅读更多

ext中大多数数据的来源是直接从数据源中取得的,我在些项目的时候combo(下拉框)用的尤其多,包括下拉框的联动问题都是基于数据源的变化来得到的。

数据源的创建:

数据源的创建现在只知道两种方式:

第一种:

            var dsPro = new Ext.data.Store({

            proxy: new Ext.data.HttpProxy({

                method: 'post',

                url:""

            }),

            reader: new Ext.data.JsonReader({

                root: 'rows',

                totalProperty: 'total',    

                fields: ['id','text']  

            })     

       });

 第二种:

var gameds = Ext.extend(Ext.data.Store,{

            proxy: new Ext.data.HttpProxy({

                method: 'post',

             url:" "

            }),

            reader: new Ext.data.JsonReader({

                root: 'rows',

                totalProperty: 'total',    

                fields: ['gameId','gameName']  

            })

       });

var form_gameds = new gameds();

区别:第一种直接

new一个数据源赋值给所需变量,使用的时候可以直接使用。

第二种不能直接使用,使用的时候重新设置变量,然后new它。

个人感觉第一种的数据干扰性比较强,不知道是什么具体的原因,像好多combo(下拉框)在使用同一个名字的数据源(虽然有时候都不在一个js文件夹中)的时候,数据竟然会干扰,在另一个combo中选择了相应的值,在另一个combo中不选择也默认选择的相同的值,隐藏的值会被赋值,到现在都不知道为什么。而且下拉的数据联动也有问题,即:有时候选择了显示的值,但是隐藏值没有!!十分坑爹。在另一个数据源使用这个隐藏值作为参数进行加载的时候,就没有参数值了,参数值为空,结果这个数据源就肆无忌惮的加载,有时会把数据库里所有的数据都刨根问底的刨出来。联动效果显示的乱七八糟,直到我直到了第二种设计数据源的方法,就再没有出现过这种情况。原因还是归结为数据干扰的问题吧!

 

数据源中有两个很重要的属性,必不可少的,proxyreaderproxy是根据用new Ext.data.HttpProxy({})来生成,Ext.data.HttpProxy({})这个还不太了解proxy是根据其中的url来获取原始的数据,然后通过reader把原始数据转换成record实例,后放入store中,至此store创建完毕。

Store.load()方法来实现上述的转换过程,如果没有load()这个方法的执行,上面的数据源是不进行加载的,除非在创建数据源的时候加上另一个属性autoloadtrue,这样在数据源进行创建时久自行加载,在可以使用数据源的时候数据源就会有数据,如果不加autoload属性,默认为false,那么在之后使用数据源的时候只能进行自行加载,否则数据源里是没有数据的。

 

Proxy中的url所对应的方法,返回的数据要对应下面reader的读取数据类型,这里即是JSON型的,JSON只会用一点,具体不太了解。

    有时候我们会用到fields里面的数据因为参数的变化可能会进行变化,在我第一次写代码的时候,首先想到的是在数据源进行load的时候重新设计reader,即reader重新读取得来的原始数据,把reader中的fields属性用变量代替,然后通过变化这个变量来改变reader,其实我觉得到现在这里都是可行的(没有试验过),但是现在还是不能游离的把某一个数据源的reader来调用到,改变数据源的reader必须在load之前(好像是废话,但是开始学的时候废了好大力气)。最后我的解决办法:按照这个变量的名字重新new一个出来,也就是根据创建store的时候才能重新设计reader

    利用数据源进行combo(下拉框的联动),上面已有说过部分,这里在系统写下,以便日后自己都不知道自己做了什么!

    原理:每一个combo都有自己的数据源,联动只不过是解决了在选第一个数据的时候,选择的数据对下一个数据源造成了特定的影响,从而使第二个数据源的数据有了限制!

    PS:这里还得说下combo怎么去跟数据源关联。具体看combo的介绍(之后再总结)。先简单说下,必须要由以下几个属性:store:数据源名字,displayField显示的值’,valueField:’隐藏值mode加载数据源方式’,typeAhead:true,

triggerAction: 'all',这些跟数据源有关的属性基本就这些了。设置好!

    在选择第一个combo值得时候也就是进行select的时候对他影响的combo所加载的数据源进行加参数,加载!

                   listeners:{

                   select:{

                               fn:function(combo,record,index) { 
                                    Ext.getCmp('server').clearValue();//清空combo为server中的显示

                        form_serverds.removeAll();//清空当中的数据源数据

                        form_serverds.load({

                                                  params:{areaId:Ext.get('form_areaId').dom.value}

                                                   });//对影响的数据源加参数进行加载

                         }

                            }

                   }

 Listeners

combo的一个属性,监听是否有select事件,有的时候进行触发。懂了很简单当时头都大两圈。

分享到:
评论

相关推荐

    Ext3.1 21款精美主题和动态换皮肤

    <link id="theme" rel="stylesheet" type="text/css" href="ext/2.0/resources/css/xtheme-default.css" />2、定义一个combox,将可选样式作为数据源填入下拉列表: 定义样式数据 Ext.simpledata.themes = [ ['...

    Ext+JS高级程序设计.rar

    6.3.5 在form中使用Ext.Direct提交数据 187 6.3.6 使用polling方式进行轮询 189 6.4 本章小结 191 第7章 Store 192 7.1 Store的结构 192 7.2 Ext.data.Field 197 7.3 Ext.data.Record 198 7.4 ArrayReader、...

    精通JS脚本之ExtJS框架.part1.rar

    12.1.3 Ext.Ajax.request提交XML数据 12.2 Ext.Updater基础 12.2.1 Ext.Updater.update方法 12.2.2 Ext.Updater.update操作示例 12.3 利用Ajax优化Web应用框架 12.3.1 多级联动菜单 12.3.2 Ajax修改用户密码 ...

    Extjs4.0视频教程和源代码,另附文档翻译

    [06]EXTJS4.0的数据集store.wmv (73.45M) 第七讲:extjs4.0的事件机制Event [07]EXTJS4.0的事件机制Event.001.zip (70.00M)[07]EXTJS4.0的事件机制Event.003.zip [07]EXTJS4.0的事件机制Event.002.zip 第八讲:...

    精通JS脚本之ExtJS框架.part2.rar

    12.1.3 Ext.Ajax.request提交XML数据 12.2 Ext.Updater基础 12.2.1 Ext.Updater.update方法 12.2.2 Ext.Updater.update操作示例 12.3 利用Ajax优化Web应用框架 12.3.1 多级联动菜单 12.3.2 Ajax修改用户密码 ...

    mysql5.1中文手册

    MySQL信息源<br>1.7.1. MySQL邮件列表<br>1.7.2. IRC(在线聊天系统)上的MySQL社区支持<br>1.7.3. MySQL论坛上的MySQL社区支持<br>1.8. MySQL标准的兼容性<br>1.8.1. MySQL遵从的标准是什么<br>1.8.2. 选择SQL模式...

    简单的两种Extjs formpanel加载数据的方式

    formpanel数据源是单独的,则store传入到formpanel页面后,还需要手动将formpanel中的每个控件用value赋值,形如: 代码如下:<span xss=removed>{ xtype: “textarea”, fieldLabel: “备注说明”, 

    轻松搞定Extjs_原创

    四、Ext.data.Store类 59 五、下拉列表框 60 六、得到下拉列表框的值 62 七、源代码 63 八、小结 64 第十一章:Ajax与ComboBox 65 一、Ajax 65 二、Ext.Ajax类 65 三、Ajax文件上传 67 四、你来自远方 72 五、小结 ...

    Fill the Online Form C from json-crx插件

    它已发布在Chrome WebStore上,其源代码可免费检查和检查是否没有恶意软件或危险代码,并且从未通过网络传输任何数据:https://github.com/LucianoBestia/efrro_form_c_chrome_ext此Chrome扩展程序仅执行一项事:它...

    MySQL 5.1官方简体中文参考手册

    1.7. MySQL信息源 http://doc.mysql.cn/mysql5/refman-5.1-zh.html-chapter/(第 1/24 页)2006-11-02 19:12:13 MySQL 5.1 Reference Manual 1.7.1. MySQL邮件列表 1.7.2. IRC(在线聊天系统)上的MySQL社区支持 ...

    MySQL5.1参考手册官方简体中文版

    1.7. MySQL信息源 1.7.1. MySQL邮件列表 1.7.2. IRC(在线聊天系统)上的MySQL社区支持 1.7.3. MySQL论坛上的MySQL社区支持 1.8. MySQL标准的兼容性 1.8.1. MySQL遵从的标准是什么 1.8.2. 选择SQL模式 1.8.3. 在ANSI...

    MySQL 5.1参考手册

    1.7. MySQL信息源 1.7.1. MySQL邮件列表 1.7.2. IRC(在线聊天系统)上的MySQL社区支持 1.7.3. MySQL论坛上的MySQL社区支持 1.8. MySQL标准的兼容性 1.8.1. MySQL遵从的标准是什么 1.8.2. 选择SQL模式 1.8.3. 在ANSI...

    MySQL 5.1中文手冊

    1.7. MySQL信息源 1.7.1. MySQL邮件列表 1.7.2. IRC(在线聊天系统)上的MySQL社区支持 1.7.3. MySQL论坛上的MySQL社区支持 1.8. MySQL标准的兼容性 1.8.1. MySQL遵从的标准是什么 1.8.2. 选择SQL模式 1.8.3. 在ANSI...

    MySQL 5.1参考手册 (中文版)

    1.7. MySQL信息源 1.7.1. MySQL邮件列表 1.7.2. IRC(在线聊天系统)上的MySQL社区支持 1.7.3. MySQL论坛上的MySQL社区支持 1.8. MySQL标准的兼容性 1.8.1. MySQL遵从的标准是什么 1.8.2. 选择SQL模式 1.8.3. 在ANSI...

    mysql官方中文参考手册

    1.7. MySQL信息源 1.7.1. MySQL邮件列表 1.7.2. IRC(在线聊天系统)上的MySQL社区支持 1.7.3. MySQL论坛上的MySQL社区支持 1.8. MySQL标准的兼容性 1.8.1. MySQL遵从的标准是什么 1.8.2. 选择SQL模式 1.8.3. 在ANSI...

    MYSQL中文手册

    1.7. MySQL信息源 1.7.1. MySQL邮件列表 1.7.2. IRC(在线聊天系统)上的MySQL社区支持 1.7.3. MySQL论坛上的MySQL社区支持 1.8. MySQL标准的兼容性 1.8.1. MySQL遵从的标准是什么 1.8.2. 选择SQL模式 1.8.3....

    MySQL 5.1参考手册中文版

    1.7. MySQL信息源 1.7.1. MySQL邮件列表 1.7.2. IRC(在线聊天系统)上的MySQL社区支持 1.7.3. MySQL论坛上的MySQL社区支持 1.8. MySQL标准的兼容性 1.8.1. MySQL遵从的标准是什么 1.8.2. 选择SQL模式 1.8.3. ...

Global site tag (gtag.js) - Google Analytics