ExtJS:2 ajax 存储,1 有一个额外的行
ExtJS: 2 ajax store, 1 with an extra row
我有这个代码:
Ext.define('storeBusiness',{
extend: 'Ext.data.Store',
autoLoad: true,
autoSync: true,
model: 'Business',
proxy: {
type: 'ajax',
api: {
read: '../crud/ler_filter.php?db='+database+'&tbl=mercados',
create: '../crud/criar.php?db='+database+'&tbl=mercados',
update: '../crud/update.php?db='+database+'&tbl=mercados',
destroy: '../crud/apagar.php?db='+database+'&tbl=mercados'
},
reader: {
type: 'json',
root: 'rows'
},
writer: {
type:'json'
}
}
});
var storeBusinessCombo = Ext.create('storeBusiness');
var storeBusiness = Ext.create('storeBusiness');
storeBusiness.add({id: 0, business: "All"});
我有 2 个网格。一个有 storeBusiness,另一个有 storeProducts.
工作方式是,当我单击业务网格时,它会过滤产品网格,以便显示该业务的产品。
在业务网格上,它具有 storeBusiness,它从数据库中获取记录。我想从数据库中获取所有业务并添加一条记录(名为'All')而不将其写入数据库。
我不想将 'All' 添加到数据库中,因为在产品的网格中我想要一个包含所有业务的组合框 (storeBusinessCombo) 而没有 'All' 记录.
有人知道我该怎么做吗?
(上面的代码没有做我想做的,storeBusiness 显示网格中没有 'All' 的所有业务)
重要提示: 如果 Ext.define('storeBusiness', 具有类型为: 'memory'
想到了两种方法:
- 加载后将 "all" 记录添加到存储中并且不同步,因此
记录不会发送到服务器。
- 使用内存代理,检索
企业记录通过 Ajax 请求并通过其数据配置将它们分配给商店。
为了解决这个问题,我做了:
- 把Ext.define('storeBusiness',{放到
autoLoad: false,
输入此代码:
var storeBusinessCombo = Ext.create('storeBusiness', {autoLoad: true});
var storeBusiness = Ext.create('storeBusiness');
storeBusiness.on('beforeload', function(){
storeBusiness.loadData([{id: 0, business: "All"}]);
}
你应该把
storeBusiness.load({addRecords: true});
当你想加载storeBusiness
.
我有这个代码:
Ext.define('storeBusiness',{
extend: 'Ext.data.Store',
autoLoad: true,
autoSync: true,
model: 'Business',
proxy: {
type: 'ajax',
api: {
read: '../crud/ler_filter.php?db='+database+'&tbl=mercados',
create: '../crud/criar.php?db='+database+'&tbl=mercados',
update: '../crud/update.php?db='+database+'&tbl=mercados',
destroy: '../crud/apagar.php?db='+database+'&tbl=mercados'
},
reader: {
type: 'json',
root: 'rows'
},
writer: {
type:'json'
}
}
});
var storeBusinessCombo = Ext.create('storeBusiness');
var storeBusiness = Ext.create('storeBusiness');
storeBusiness.add({id: 0, business: "All"});
我有 2 个网格。一个有 storeBusiness,另一个有 storeProducts.
工作方式是,当我单击业务网格时,它会过滤产品网格,以便显示该业务的产品。
在业务网格上,它具有 storeBusiness,它从数据库中获取记录。我想从数据库中获取所有业务并添加一条记录(名为'All')而不将其写入数据库。
我不想将 'All' 添加到数据库中,因为在产品的网格中我想要一个包含所有业务的组合框 (storeBusinessCombo) 而没有 'All' 记录.
有人知道我该怎么做吗?
(上面的代码没有做我想做的,storeBusiness 显示网格中没有 'All' 的所有业务)
重要提示: 如果 Ext.define('storeBusiness', 具有类型为: 'memory'
想到了两种方法:
- 加载后将 "all" 记录添加到存储中并且不同步,因此 记录不会发送到服务器。
- 使用内存代理,检索 企业记录通过 Ajax 请求并通过其数据配置将它们分配给商店。
为了解决这个问题,我做了:
- 把Ext.define('storeBusiness',{放到
autoLoad: false,
输入此代码:
var storeBusinessCombo = Ext.create('storeBusiness', {autoLoad: true}); var storeBusiness = Ext.create('storeBusiness'); storeBusiness.on('beforeload', function(){ storeBusiness.loadData([{id: 0, business: "All"}]); }
你应该把
storeBusiness.load({addRecords: true});
当你想加载
storeBusiness
.