`

【转】store.getById() 使用

阅读更多

store.getById()要能成功得到record,需要有两个条件:
1、store的config Options中设置了id属性
2、创建record是要说明id属性
后者是时常被遗漏的要注意

API 写道
Record( Array data, [Object id] )
This constructor should not be used to create Record objects. Instead, use the constructor generated by create. The parameters are the same.
Parameters:
data : Array
An associative Array of data values keyed by the field name.
id : Object
(Optional) The id of the Record. This id should be unique, and is used by the Ext.data.Store object which owns the Record to index its collection of Records. If not specified an integer id is generated.

 

 

例子

Ext.BLANK_IMAGE_URL = '../resources/images/default/s.gif';    
Ext.QuickTips.init();   
Ext.form.Field.prototype.msgTarget = 'side';   
/*sequece*/  
var id=0;   
/**屏蔽系统右键菜单*/  
Util.forbidContextMenu();    
Ext.onReady(function(){   
    var sm=new Ext.grid.CheckboxSelectionModel({});   
    var cm=new Ext.grid.ColumnModel([   
        sm,   
        {   
            header:"URL",   
            sortable:true,   
            dataIndex:'url',   
            editor:new Ext.form.TextField({   
                vtype:"url",   
                allowBlank:false  
            })   
        },   
        {      
            header:'删除',   
            renderer:delRender,   
            sortable:false,   
            menuDisabled:true,   
            dataIndex:'id'  
        }   
    ]);   
    var ds=new Ext.data.JsonStore({   
        data:{data:[],number:0},   
        root:'data',   
        storeId:"strBlackUrl",   
        id:"id",   
        totalProperty: 'number',   
        fields:['id','url']   
    });   
  
    var grid=new Ext.grid.EditorGridPanel({   
        sm:sm,   
        cm:cm,   
        ds:ds,   
        title:'黑名单网址列表',   
        tbar:[   
            '->',   
            btnFactory('add'),   
            '-',   
            btnFactory('del'),   
            '-',   
            {   
                text:'保存',   
                cls:'x-btn-text-icon',   
                icon:'../images/backup.gif',   
                handler:saveHandler   
            }   
        ]   
    });   
  
    var viewport=new Ext.Viewport({   
        layout:'fit',   
        id:'viewport',   
        items:[   
            grid   
        ]   
    });   
})   
BlackUrl=Ext.data.Record.create([   
    {name:"url",mapping:"url"},   
    {name:"id",mapping:"id",id:true}   
]);   
function addHandler()   
{   
    var record=new BlackUrl({url:"http://www.test.com",id:id},id);   
    id++;   
    Ext.StoreMgr.lookup("strBlackUrl").add(record);   
}   
function delHandler(id)   
{   
    var store=Ext.StoreMgr.lookup("strBlackUrl");   
    var record=store.getById(id);   
    store.remove(record);   
}   
function saveHandler()   
{   
       
}  

 

若没有提供第二个可选参数var record=new BlackUrl({url:"http://www.test.com",id:id},id);
函数delHandler(id)中的store。getById()就会报错
 。 

分享到:
评论

相关推荐

    vue 获取及修改store.js里的公共变量实例

    this.$store.commit('add',1) } }, computed:{ num:function(){ // 因为要做修改 num 的值 所以放在 计算属性里 return this.$store.state.num } } store.js state: { num:0 }, mutations: { ad

    store.js.rar

    store.js 是一个兼容所有浏览器的 LocalStorage 包装器...store.js 会根据浏览器自动选择使用 localStorage、globalStorage 或者 userData 来实现本地存储功能 。 Git地址:https://github.com/marcuswestin/store.js

    store.php.html

    store.php.html

    基于storage开发缓存库si-store.js.zip

    store.set('test1', 'this is value') // 存储字符串 store.set('test2', {  key: 'this is test' }) // 也可以存储对象 store.get('test1') // 获取存储的值 this is value store.remove('test2...

    vuex中store存储store.commit和store.dispatch的用法

    `store.commit` 和 `store.dispatch` 是 Vuex 中用于管理和改变状态的核心方法,它们各自有不同的功能和应用场景。 **1. store.commit** `store.commit` 用于触发一个 **mutation**(状态变更事件)。Mutation 是 ...

    envi_app_store.zip

    "help.pdf" 提供了关于ENVI App Store的使用指南,而 "envi_app_store.sav" 是一个重要的数据文件,它包含了ENVI App Store的应用程序配置信息和数据。 安装过程如下: 1. **解压缩**:下载 "envi_app_store.zip" ...

    com_qihoo_appstore.apk

    com_qihoo_appstore.apk

    本地存储APIsstore.zip

    本地存储 APIsstore.js 是一个实现了浏览器的本地存储的 JavaScript 封装 API,不是通过 Cookie 和 Flash 技术实现,而是使用 localStorage。小弟我主要是用于chrome,Safari,手机Web等先进浏览器里面跑。so.......

    Microsoft Store.zip

    在这种情况下,可以通过安装资源包来解决,如“Microsoft Store.zip”这样的文件,它包含了安装Microsoft Store所需的全部组件,用户只需解压并按照指导步骤进行安装,即可拥有这个功能强大的应用商店。 Microsoft ...

    store.js

    store.js

    AppleStore.csv

    包括苹果商店APP的id、开发商、软件大小、货币类型、价格、总评分数、均评论数、年龄分级、分类标签、支持设备数、ipad支持等信息。可供数据分析和数据挖掘。数据行11000+

    storejs对于不同浏览器的本地存储提供一个简单的API

    - **设置数据**:使用`store.set(key, value)`可以方便地将键值对存入本地存储。 - **获取数据**:通过`store.get(key)`可以获取指定键的值,如果键不存在,则返回undefined。 - **删除数据**:`store.remove(key)`...

    store.zip

    为了进一步了解和使用"store.zip"中的代码,我们需要解压文件,查看具体的文件结构,并根据项目需求运行构建脚本,安装任何必要的依赖,然后可能还需要配置环境变量。如果项目包含一个"README"文件,它会提供详细的...

    PyPI 官网下载 | p2.store.client-0.3.1.tar.gz

    同时,`README`文件会指导我们如何安装和使用这个库,例如,通过`pip install p2.store.client`命令可以快速安装。 在源代码目录下,我们可以找到库的核心功能实现,包括模块、类和函数。这些代码可能会提供数据...

    ENVI_appstore.zip

    总结起来,ENVI_appstore.zip是一个包含ENVI应用程序商店使用指南和工作空间文件的压缩包,它为用户提供了深入理解和使用ENVI的途径,无论是初学者还是经验丰富的遥感专家,都能从中受益匪浅。通过阅读`help.pdf`,...

    vuex 解决报错this.$store.commit is not a function的方法

    在使用过程中,注意正确导入、注册 store,以及在组件中正确引用 state 和 commit mutation,避免出现 `this.$store.commit is not a function` 的错误。同时,遵循 Vuex 的单一状态树原则,保持状态的集中管理,有...

    mem_store.rar_mem-store_memory

    标题中的"mem_store.rar_mem-store_memory"提示我们这是一个与内存存储相关的项目,可能涉及内存管理、数据读写等操作。描述中的"test class for read and write data to memory"进一步确认了这一点,它是一个用于...

    Manning.Windows.Store.App.Development.2013

    《Manning.Windows.Store.App.Development.2013》在出版时,Windows Store平台已经吸引了数百万使用Windows 8.x或Surface的用户,并提供了大量生产工具、游戏及其他应用。该平台上的应用拥有新的特性,如触摸和笔...

Global site tag (gtag.js) - Google Analytics