Extjs,删除按钮

时间:2010-11-28 20:22:11

标签: extjs

在这个示例中:http://dev.sencha.com/deploy/dev/examples/grid/progress-bar-pager.html如果我想放一个删除按钮,在从网格中删除行后,如何从myData更改或删除此记录?因为当我更改页面或单击o刷新按钮时,我的行/行的删除再次出现。有没有改变数据的解决方案?

非常感谢

3 个答案:

答案 0 :(得分:4)

类似的东西:

var grid = ...; // Your grid.

var button = new Ext.Button({
    text: 'Delete row',
    handler: function() {
        var record = grid.getSelectionModel().getSelected();

        if (record !== undefined) {
            grid.store.remove(record);
        }
    }
});

如果您希望删除数据是真实的,则网格应使用远程存储来加载和删除实际数据存储中的数据。以下仅表示本地更改:

proxy: new Ext.ux.data.PagingMemoryProxy(myData),

你可以尝试删除它并放入

url: 'http://localhost/path/to/get/data'

有关详细信息,请参阅文档:http://dev.sencha.com/deploy/dev/docs/?class=Ext.data.Store

答案 1 :(得分:1)

如果查看该示例的源代码,它将从硬编码的数组中加载数据:

Ext.onReady(function(){

        var myData = [
                ['3m Co',71.72,0.02,0.03,'9/1 12:00am'],
                ['Alcoa Inc',29.01,0.42,1.47,'9/1 12:00am'],
                ['Altria Group Inc',83.81,0.28,0.34,'9/1 12:00am'],
                // ...
                ['Verizon Communications',35.57,0.39,1.11,'9/1 12:00am'],
                ['Wal-Mart Stores, Inc.',45.45,0.73,1.63,'9/1 12:00am']
        ];
每次页面加载时都会从该静态定义重新创建

myData,这就是更新在刷新之间不会持续存在的原因。

您需要编写两个服务器端脚本(例如PHP脚本)。一个以JSON或XML格式输出未删除记录的数据。另一个通过ID从数据库中删除记录。

这是一个教程,内容包括编写“getter”PHP脚本和相应的Ext JS代码,用于显示技术产品的数据网格:http://www.devarticles.com/c/a/JavaScript/EXT-JS-Passing-Live-Data/。这只包括第一个脚本(从数据库中检索数据并以JSON格式输出的脚本),但它应该让你前进。查看使用向第二个脚本发出AJAX请求的函数覆盖商店的remove回调(通过ID从数据库中删除记录的脚本)。

答案 2 :(得分:0)

这是解决方案myData.splice(1,1);