2012-05-14 312 views
2

我正在創建一個列表,我通過json數據從列表中添加項目。 我面臨的問題是我有一個刪除按鈕,並點擊按鈕, 從列表中選擇的項目必須從商店中刪除。從列表中刪除一個項目

這是我曾嘗試

{ 
    text: '', 
    id: 'deletenotesBtn', 
    iconCls:'trash', 
    iconMask: true, 
    ui:'action', 
    handler: function(){ 
    var itemSelected = Ext.getCmp('noteslist').getSelection().remove(); 
    // this.remove(this, true); 
    alert('item deleted'); 
} 

我如何能做到這有什麼建議?

回答

5

答案在你的問題內。您必須從商店中刪除商品,而不是從列表中刪除商品。

... 
handler: function(){ 
    var selection = Ext.getCmp('noteslist').getSelection(); 
    Ext.StoreManager.get('MyStore').remove(selection[0]); 
} 
... 

也就是說,假設您用於列表的商店被稱爲'MyStore'。

列表中'getSelection()'方法的輸出是(可能多個)所選項目的數組。如果沒有選中,它將返回一個空數組。如果選擇了一個或多個項目,它將返回商店中相應記錄的數組。

在所有情況下,按鈕上的此處理函數都會從您的商店中刪除選定的項目,並且您的列表將相應地刷新。

另外,根據您的商店的配置,您可能需要執行此操作後它同步:

Ext.StoreManager.get('MyStore').sync(); 

希望這有助於。

+0

working ..非常感謝。還有一種方法可以提取所選列表項的內容? – Khush

+0

正如我的(已更新)答案中所解釋的,getSelection()返回所選記錄的數組。所以你可以檢查這個結果的內容。例如,如果在店鋪模型中有一個名爲'field1'的字段,則選擇[selection] [get]('field1')「。 – borck

+0

yea.figured它。十分感謝你的幫助。 – Khush