2011-05-20 77 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