2012-05-14 79 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