1

所以,我的代码中有一个数据存储,我正在加载到一个函数中。在该商店中,我想使用each 方法将每条记录以某种格式附加到面板的正文中。

我想弄清楚的是如何使用这种“每个”方法。以前有人用过吗?一般来说,我对函数和编程比较陌生,所以我试图弄清楚“fn”和“范围”相对于我自己的代码是什么。

如果有人以前在 ExtJS 框架中使用过这种方法,那么任何帮助都会很棒。

4

2 回答 2

4

为您的案例使用 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);
于 2010-08-26T07:23:31.570 回答
1

听起来你想要一个Ext.DataView

DataView 使用 Template 或 XTemplate 在存储中创建数据的呈现。

因此,您实例化配置的数据视图,包括对您的商店的引用和要使用的模板,并将该数据视图添加到您的面板。

于 2010-08-26T03:46:45.590 回答