`
E,我卡了
  • 浏览: 31015 次
  • 性别: 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事件,有的时候进行触发。懂了很简单当时头都大两圈。

分享到:
评论

相关推荐

    ext 基本知识-store-proxy-reader-ext-connection-实例

    四、Ext.data.ProxyExt.data.Proxy是数据源的抽象层,负责与服务器进行数据交互。在本例中没有直接提及Proxy,但通常Store会关联一个Proxy来处理数据请求。Ext.data.HttpProxy和Ext.data.ScriptTagProxy是两种常见的...

    Ext.Store的获取方法

    在Ext.js中,`Ext.Store`是用来管理数据的类,它通常与各种UI组件(如Grid、ComboBox等)关联,用于存储和检索数据。然而,获取`Ext.Store`的方式并不像获取其他Ext组件那样直接,因为Store并不是一个具有可视界面的...

    ext-----多选下拉框

    你可以通过设置`store`属性来指定下拉列表的数据源,通常是一个`Ext.data.Store`对象,包含一组记录。`displayField`属性定义了在下拉列表中显示的字段。 2. **多选配置**: 要将`ComboBox`转换为多选下拉框,你需要...

    Ext.data.Store 读取XML属性值

    在处理数据时,`Ext.data.Store`是一个至关重要的组件,它用于存储和管理数据,可以与各种数据源进行交互。当我们需要从XML文档中提取数据并加载到`Store`时,就涉及到`Ext.data.reader.Xml`。这篇博客文章《Ext....

    Ext数据模型Store

    Ext数据模型中的Store是EXT框架中非常核心的一个概念,它是数据管理的主要接口,负责存储和管理数据集。Store内部使用了`Ext.util.MixedCollection`数据结构,这使得它可以同时作为映射和列表来操作数据,并在数据...

    Ext-JS-3-Cookbook源码

    《Ext-JS-3-Cookbook源码》是关于Ext JS 3.x版本的一个实践教程,其中包含了完整的源代码示例。这个压缩包文件提供了丰富的代码资源,旨在帮助开发者深入理解并掌握Ext JS 3的核心功能和应用技巧。 Ext JS是一个...

    ext-2.0.2-aspx-only-aspx-examples

    4. **数据绑定**: 探索如何使用ExtJS的数据模型和Store与ASP.NET的数据源(如GridView、ListView)进行绑定,实现数据的异步加载和更新。 5. **布局管理**: 学习各种ExtJS布局(如fit、border、form等),以及如何...

    Ext2.2-用XML做数据源,可编辑Grid的例子.rar

    本示例“Ext2.2-用XML做数据源,可编辑Grid的例子.rar”聚焦于如何利用Ext JS的Grid组件,并结合XML数据源来实现一个可编辑的数据网格。 在Web应用中,数据展示和编辑是常见的需求。Grid组件是Ext JS处理表格数据的...

    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--grid--demo

    2. **数据源(Data Source)**:在`ext--grid--demo`中,数据通常通过JSON格式从服务器获取。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Ext ...

    ext-3.2-beta_6256-157.zip

    数据绑定机制使得UI与后端数据源之间的交互变得简单,无需手动编写大量的DOM操作代码。布局管理器则确保了在不同屏幕尺寸和分辨率下,组件能自适应地排列和显示。 在"ext-3.2-beta"文件夹中,你可能会找到以下关键...

    ext-grid+json简单应用

    在"EXT-GRID+JSON简单应用"中,我们将探讨如何使用EXT-JS的Grid组件与JSON数据源进行集成,以创建一个动态的数据表格。 EXT-JS的Grid组件允许开发者通过定义列模型、存储器和视图来展示数据。在JSON方面,它是一种...

    EXT-JS Grid 用法

    在EXT Designer中,可以通过“New Store”按钮创建一个新的Store,并设置数据源、模型定义以及数据加载方式。 5. 绑定数据:将创建的Store与Grid关联,使得数据能正确显示在Grid中。在Grid的配置中找到“store”...

    EXT.NET1.0带自定义页大小的分页

    EXT.NET的Store组件与服务器端的数据源进行交互,例如数据库。在Pagination.aspx.cs中,你可能会看到如下代码来填充Store: ```csharp protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) ...

    ext grid数据绑定

    EXT Grid通常使用Store对象来处理数据模型,Store可以连接到各种数据源,如JSON、XML或者远程API,通过Ajax请求加载数据。 1. 数据绑定(Data Binding): 数据绑定是EXT Grid的核心特性之一,它允许Grid与数据源...

    ext-3.4.0.rar

    4. **数据存储**:Ext JS 3.4.0包含了一种名为“Store”的数据存储机制,它可以连接到各种数据源(如XML、JSON、Ajax),并提供数据加载、过滤、排序和分页等功能。 5. **表格网格**:Ext JS的GridPanel是其最知名...

    ext4-与-mvc

    - 示例存储(Store):配置数据源和加载机制。 - 视图组件(View):如表格、表单等,显示和编辑数据。 - 控制器(Controller):包含处理用户交互的代码,如按钮点击事件的监听器。 - 应用配置(App.js):定义应用...

    examples.ext.net-5.zip

    GridPanel可以连接到各种数据源,如ADO.NET、Entity Framework等,实现数据的展示、编辑和操作。同时,GridPanel还支持行选择、列隐藏、分组等功能,这在Web应用的数据管理中非常常见。 FormPanel实例则展示了EXT...

    Ext用户扩展控件-----树形表格

    通常,数据源会包含`children`字段来表示节点的子节点。 扩展控件"UxTreeGrid"很可能是一个社区或者第三方开发的组件,它可能提供了额外的功能,比如: 1. **增强的排序和过滤**:可能提供了更复杂的排序算法,...

    EXT--tree

    配置TreePanel时,我们需要定义`store`,这是一个存储所有节点信息的数据源,以及`rootNode`,这是树的顶级节点。 博文链接虽然未提供具体内容,但通常会包含关于EXT.js TreePanel的实现、使用技巧、自定义扩展或...

Global site tag (gtag.js) - Google Analytics