Extjs,删除按钮

Extjs,删除按钮,extjs,Extjs,在本例中:如果我想放置一个删除按钮,在该行从网格中删除后,如何从myData中更改或删除该记录?因为当我更改页面或单击“刷新”按钮时,我的行/行的“已删除”再次出现。是否有更改数据的解决方案 非常感谢类似于: var grid = ...; // Your grid. var button = new Ext.Button({ text: 'Delete row', handler: function() { var record = grid.getSelec

在本例中:如果我想放置一个删除按钮,在该行从网格中删除后,如何从myData中更改或删除该记录?因为当我更改页面或单击“刷新”按钮时,我的行/行的“已删除”再次出现。是否有更改数据的解决方案

非常感谢

类似于:

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'
有关更多信息,请参阅文档:

类似于:

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'

有关更多信息,请参阅文档:

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

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脚本和相应的ExtJS代码来显示技术产品上的数据网格:。这只包括第一个脚本(从数据库中检索数据并以JSON格式输出数据的脚本),但它应该可以让您继续。研究使用向第二个脚本(通过ID从数据库中删除记录的脚本)发出AJAX请求的函数重写存储回调。

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

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脚本和相应的ExtJS代码来显示技术产品上的数据网格:。这只包括第一个脚本(从数据库中检索数据并以JSON格式输出数据的脚本),但它应该可以让您继续。研究使用向第二个脚本(通过ID从数据库中删除记录的脚本)发出AJAX请求的函数覆盖存储的回调。

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

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

你的想法很好,但我想用现金,我不想每次删除产品时都重新加载数据库。我还有一个函数,单击从数据库中删除行,但我不想重新加载数据库。如果你有10-20个产品,它可以,但是如果你有10.000…@cosy,删除不应该(或者至少不需要)引起重新查询。如果您假设删除成功,或者在删除失败时恢复删除的记录,那么@Kai应该可以。您可以始终放置一个保存按钮,通过
Ext.AJAX.request()
或通过
store.Save()
发送AJAX请求。只需确保将存储设置为
autoSave
false
,否则它将自动保存更改;你的想法很好,但我想用现金,我不想每次删除产品时都重新加载数据库。我还有一个函数,单击从数据库中删除行,但我不想重新加载数据库。如果你有10-20个产品,它可以,但是如果你有10.000…@cosy,删除不应该(或者至少不需要)引起重新查询。如果您假设删除成功,或者在删除失败时恢复删除的记录,那么@Kai应该可以。您可以始终放置一个保存按钮,通过
Ext.AJAX.request()
或通过
store.Save()
发送AJAX请求。只需确保将存储设置为
autoSave
false
,否则它将自动保存更改;