除非我检查某些条件,否则我想加载没有记录的商店。但是我希望将params传递给我的loadData(),以便我可以用其他文本覆盖emptyText属性。
this.superclass.constructor.call(this, Ext.apply({
viewConfig:{
emptyText: "No Records"
},
fields: [],
});
this.on('afterrender', function(){
new Ext.util.DelayedTask(function() {
this.getStore().loadData([]); //loading empty data
}, this).delay(300);
}, this);
所以当我加载商店时,我想要替换emptyText: "Select actions
"一旦选择了动作,它将显示记录或根据数据不显示记录。
如果我插入"选择操作'在viewConfig上面的文本,它在页面加载时工作正常,但是当没有找到记录时,它仍然显示"选择动作"。是否有任何方式我将params传递给loadData()函数来覆盖文本? 谢谢!
答案 0 :(得分:2)
虽然@ Saloo的示例有效,但让我告诉您面向对象可以为您做什么。
如果您不想一遍又一遍地复制代码,在每个loadData
后面,您可以在商店定义中覆盖现有的loadData函数以添加另一个参数,例如:
loadData:function(data, append, emptyText) {
if(emptyText) {
grid.emptyText = '<b> ' + emptyText + ' </b>';
grid.getView().refresh();
}
this.callParent(arguments);
}
然后你去。
答案 1 :(得分:1)
loadData()方法不接受任何参数。
loadData( data, [append] )
您必须处理任何其他事件,例如选择组合,然后根据您的条件手动更改viewConfig emptyText,然后刷新视图。
我在网格组件上做了这样的事情:
if (Ext.isEmpty(records)) {
grid.emptyText = '<b> No Document Found </b>';
grid.getView().refresh();
}