所以,我的代码中有一个数据存储,我正在加载到一个函数中。在该商店中,我想使用each 方法将每条记录以某种格式附加到面板的正文中。
我想弄清楚的是如何使用这种“每个”方法。以前有人用过吗?一般来说,我对函数和编程比较陌生,所以我试图弄清楚“fn”和“范围”相对于我自己的代码是什么。
如果有人以前在 ExtJS 框架中使用过这种方法,那么任何帮助都会很棒。
为您的案例使用 Dataview。将商店和 XTemplate 添加到您的数据视图中,并将此数据视图作为一个项目添加到您的面板中。它会是这样的:
this.store = new Ext.data.JsonStore({
url : 'myproxy.php',
baseParams : {
action : 'get_basket_files'
},
root : 'rows',
id : 'filename',
fields : ['filename', 'filepath', 'filesize', 'fileclass']
});
this.filesTemplate = new Ext.XTemplate(
'<div class="files_container"><tpl for=".">',
'<div id="{filename}" class="basket-fileblock"><div class="{fileclass}"></div>',
'<div class="filetext">{filename}</div></div> ','</tpl></div>');
this.filesTemplate.compile();
this.filesDataView = new Ext.DataView({
itemSelector : 'div.basket-fileblock', //Required
style : 'overflow:auto',
multiSelect : true,
store : this.store,
tpl : this.filesTemplate
});
var panel = new Ext.Panel({
layout : 'fit',
items : [this.filesDataView]
});
这里 XTemplate 是每个项目的 HTML 模板。查看 ExtJS 文档,该文档提供了许多 XTemplate 示例。
举个例子,ExtJS的每个函数都可以这样使用:
假设一个项目数组是 myItems。所以,
Ext.each(myItems, function(eachItem){
//Do whatever you want to do with eachItem
}, this);
听起来你想要一个Ext.DataView。
DataView 使用 Template 或 XTemplate 在存储中创建数据的呈现。
因此,您实例化配置的数据视图,包括对您的商店的引用和要使用的模板,并将该数据视图添加到您的面板。