有人可以解释插件如何在数据存储中添加记录 与tha领域:“标题”,“信息”和“价格”? 因为我尝试了一些东西,但没有一个能奏效。并且sencha网站没有说清楚。
答案 0 :(得分:9)
将新项目添加到现有商店实际上并不难。
首先,您需要配置您的模型和商店。在您的问题中,您可以将字段命名为“标题”,“信息”和“价格”。
型号:
Ext.regModel('myModel', {
fields: [
{name: 'id', type: 'int' },
{name: 'title', type: 'string' },
{name: 'info', type: 'string' },
{name: 'price', type: 'int' }
]
});
接下来,根据上述模型配置将保存数据的商店。我认为,在你的情况下,它应该是一个没有任何数据预加载的模型,例如,JSON?
因此,我们制作一个localstorage(空商店)。商店由模型(myModel)组成,您为其提供storeID(以便稍后可以通过此ID引用商店)。代理是localstorage,Store的唯一ID将是Model的ID字段。
商店:
var myStore = new Ext.data.Store({
model: "myModel",
storeId: "myStoreID",
proxy: {
type: "localstorage",
id: "id"
}
});
现在,假设您有某种形式(用户可以在其中添加标题,信息和价格的输入,并且您希望在提交时将这些项目添加到现有商店。
在提交按钮的处理程序中,您现在必须“调用”商店,并在其上执行添加功能。在此添加功能中,您必须定义参数(模型参数)和要插入的数据。
下面我使用了固定数据和变量的混合来插入。
myStoreID.add({ title: "Mijn Titel", info: "Informatie, price: prijsvar });
现在将填充商店,现在将填充您可以使用的额外数据记录。让我们说例如商店附加到数据视图,然后您可以执行:
dataView.update();
以上不是完整的教程,但我认为这会对你有帮助吗?
答案 1 :(得分:0)
只是YDL答案的更新。 根据dataView应该与更新的商店相关,不应该使用最后一句dataView.update(),因为它在更改时会自动更新与商店相关的视图。
new Ext.DataView({
store: MyStore,
itemSelector: 'div.thumb',
tpl: thumbTpl
});
稍后,如果我执行以下操作,则新项目应显示在以MyStore作为商店的视图(List,DataView等)中。
MyStore.add(newItem);
HTH。 米尔顿罗德里格斯。
答案 2 :(得分:0)
如果您尝试传入从表单上的getValue()
返回的对象,请确保运行
myStore.sync();
调用add()
方法后,或者在浏览器本地商店中看不到它。
答案 3 :(得分: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