У меня есть компонент extjs Panel
, который содержит элемент dataview
. Я использую это для отображения изображений из магазина. Он работает как ожидалось во время первой загрузки. Но позже, когда я перезагружаю imgStore
с новым url изображения (который возникает, когда пользователь ищет и загружает другой город), представление не обновляется. Может ли кто-нибудь указать мне лучший способ обновить пункт panel/dataview
, когда обновляется связанное хранилище данных?Обновление dataview в панели в extjs 3.4
Фактический код имеет более одного элемента на панели и многих других кнопок и панелей инструментов. Пожалуйста, обратитесь к соответствующей части кода ниже:
init: function() {
// image store
this.imgStore = new Ext.data.JsonStore({
idProperty: 'imgId',
fields: [{
name: 'imgId',
type: 'integer',
mapping: 'imgId'
}, {
name: 'url',
mapping: 'url'
}],
data: [],
});
// load images
Ext.each(myImgStore.data.items, function(itm, i, all) {
this.imgStore.loadData(itm.data, true);
});
// add to a dataview in a panel
this.myPanel = new Ext.Panel({
autoScroll: true,
items: [{
xtype: 'dataview',
store: this.imgStore,
autoScroll: true,
id: 'imgList',
tpl: new Ext.XTemplate(
'<ul class="imgGrid">',
'<tpl for=".">',
'<li>',
'<div class=\"imgThumbnail\" imgId="{imgId}">',
'<img src="{url}"/>',
'</div>',
'</li>',
'</tpl>',
'</ul>',
'<div class="x-clear"></div>'
),
listeners: {
afterrender: function() {
// do something
}
}
}]
});
// add this to the center region of parentpanel
Ext.getCmp('parentPanel').add([this.myPanel]);
this.myPanel.doLayout();
}
Everytime магазин перезагрузке, я хочу DataView в обновлении. Я использую версию extjs 3.4.
Спасибо!
Yep refresh была функция, которую я искал. Благодаря! – kriver