2011-05-20 66 views
1

有人可以解释插入是如何在数据存储 中添加记录的:“title”,“info”和“price”? 因为我尝试了一些东西,但都没有工作。而sencha网站并没有说得很清楚。插入sencha触摸数据存储

回答

9

添加一个新项目到现有的商店实际上并不难。

您首先需要配置您的模型和商店。在你的问题中,你要命名字段的标题,'信息'和'价格'。

型号:

Ext.regModel('myModel', { 
    fields: [ 
     {name: 'id', type: 'int' }, 
     {name: 'title', type: 'string' }, 
     {name: 'info', type: 'string' }, 
     {name: 'price', type: 'int' }   
    ] 
}); 

下一页配置将要保持数据的基础上,上述模型店。我认为,就你而言,它应该是一个没有通过例如JSON预装任何数据的模型?

因此让我们做一个本地存储(空存储)。商店由模型(myModel)组成,您为其提供商店ID(以便稍后可以通过此ID引用商店)。代理是localstorage,Store的唯一ID将是Model的ID字段。

商店:

var myStore = new Ext.data.Store({ 

     model: "myModel", 
     storeId: "myStoreID", 
     proxy: { 
      type: "localstorage", 
      id: "id"    
     } 
    }); 

现在,假设你有某种形式的(其中用户可以添加输入一个标题,信息和价格,您希望将这些项目添加到上提交的现有商店

在提交按钮的处理程序中,您现在必须“调用”存储并对其执行add函数。在此add函数中,您必须将参数(模型参数)和数据定义为插入

下面我使用了fi xed数据和要插入的变量。

myStoreID.add({ title: "Mijn Titel", info: "Informatie, price: prijsvar }); 

该商店现在将被填充一个额外的数据记录,您可以使用。让我们说,例如,商店连接到数据视图,那么可以执行:

dataView.update(); 

上面没有一个完整的教程,但我认为这会帮助你一起去吗?

+0

非常感谢你和我可以也显示在列表中的数据?我想用它时,一下就onItemDisclosure,但它似乎没有工作,我输入此:onItemDisclosure:()函数 \t \t \t \t \t \t { \t \t \t \t \t WinkelwagenStore.add({标题:“Mijn Titel的”信息: “Informatie”,prijs: “25”}) \t \t \t \t \t \t} – 2011-05-20 08:05:54

+0

什么并不完全工作?更新列表中的数据?或者添加到商店?把一个“console.log(WinkelwagenStore)放在你的函数末尾,检查是否更新了商店。 – YDL 2011-05-20 08:54:28

+0

我得到了它的工作非常感谢。 – 2011-05-20 10:06:15

0

只是YDL答案的更新。 根据dataView应与更新的商店相关,最后一句dataView.update()不应该需要,因为商店更改时与商店相关的视图会自动更新。

new Ext.DataView({ 
    store: MyStore, 
    itemSelector: 'div.thumb', 
    tpl: thumbTpl 
}); 

后来,如果我做了以下操作,新项目应显示在MyStore作为存储的视图(List,DataView等)中。

MyStore.add(newItem); 

HTH。 MiltonRodríguez。

0

如果你想在一个从一个getValue()窗体上返回的对象传递,确保你运行一个

myStore.sync(); 

你叫后add()方法,或者你不会看到它在您的浏览器本地商店。

0

这是很容易尝试这些

//首先获取这些值和本地存储在

 var A_select1=Ext.getCmp('select1').getValue(); // get value 

     localStorage.setItem("Adult1_select1",A_select1); // set localStore 


     var AdultSalutation={ 

        'Adult1_select1':A_select1, // assign the value             

      };          

    var AdultSalutationstore = Ext.getStore('Adult_AdultSalutationstore'); // get store 

     AdultSalutationstore.add(AdultSalutation); // add object 

     AdultSalutationstore.sync(); // sync 

     AdultSalutationstore.load(); // load