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