Kịch bảnCập nhật một lĩnh vực trong một bản ghi dyanamically trong ExtJS
Tôi muốn cập nhật dữ liệu cột của kỷ lục đặc biệt trong lưới có cửa hàng với dữ liệu tĩnh. Đây là cửa hàng của tôi:
extend : 'Ext.data.Store',
model : 'MyModel',
autoLoad:true,
proxy: {
type: 'ajax',
url: 'app/data/data.json',
reader: {
type: 'json',
root: 'users'
}
},
data.json My
{
'users': [{
QMgrStatus: "active",
QMgrName: 'R01QN00_LQYV',
ChannelStatus: 'active',
ChannelName: 'LQYV.L.CLNT',
MxConn: 50
}]
}
Những gì tôi đang làm để cập nhật các bản ghi:
var grid = Ext.getCmp('MyGrid');
var store = Ext.getStore('Mystore');
store.each(function(record, idx) {
val = record.get('ChannelName');
if (val == "LQYV.L.CLNT") {
record.set('ChannelStatus', 'inactive');
record.commit();
}
});
console.log(store);
grid.getView().refresh();
MY VẤN ĐỀ
Tôi đang nhận được bản ghi cập nhật tại đây.Đó không được phản ánh trong bảng điều khiển lưới của tôi. Lưới đang sử dụng cùng một cửa hàng cũ (tĩnh) .Đó là vấn đề của dữ liệu tĩnh? Hoặc tôi đang thiếu một cái gì đó hoặc đi đâu đó sai? Xin hãy giúp tôi với vấn đề này. Cảm ơn rất nhiều.
EDIT MY
Tôi tryng để mã màu cột dựa trên status.But đây tôi luôn nhận được status = "active" mặc dù tôi đang cập nhật các cửa hàng.
Những gì tôi đang cố gắng để làm trong lưới của tôi
{
xtype: 'grid',
itemId: 'InterfaceQueueGrid',
id: 'MyGrid',
store: 'Mytore',
height: 216,
width: 600,
columns: [{
text: 'QueueMgr Status',
dataIndex: 'QMgrStatus',
width: 80
}, {
text: 'Queue Manager \n Name',
dataIndex: 'QMgrName',
width: 138
}, {
text: 'Channel Status',
dataIndex: 'ChannelStatus',
width: 78,
align: 'center',
renderer: function(value, meta, record) {
var val = record.get('ChannelStatus');
console.log(val); // Here I am always getting status="active".
if (val == 'inactive') {
return '<img src="redIcon.png"/>';
} else if (val == 'active') {
return '<img src="greenIcon.png"/>';
}
}
}, {
text: 'Channel Name',
align: 'center',
dataIndex: 'ChannelName',
width: 80
} {
text: 'Max Connections',
align: 'center',
dataIndex: 'MxConn',
width: 80
}]
}
Cảm ơn Christoph. Tôi đã giải quyết nó bằng grid.bindStore (MyUpdatedStore); Nhưng giải pháp của bạn cũng đá.Thanks rất nhiều – Dev
Được sử dụng grid.reconfigure (cửa hàng) - làm việc như một say mê! Cảm ơn! –