ext arraystore怎么使用了?为啥我的下拉菜单里的数据出不来

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ext arraystore怎么使用了?为啥我的下拉菜单里的数据出不来相关的知识,希望对你有一定的参考价值。

我的js文件为

Ext.onReady(function()
new Ext.FormPanel(
title : "comboBox",
labelWidth : 75,// 标签的宽度
frame : true,// 面板的边框自定义
bodyStyle : "padding:5px 5px 0",
renderTo : Ext.getBody(),
items : [
// store : store,
fieldLabel : '北京城区',
emptyText : '--请选择--',
allowBlank : false,
xtype : 'combo',
displayField : 'name',
triggerAction : 'all',
valueField : 'id',
// mode : 'local',// 获取本地数据
mode : 'remote',// 读取远程数据
store : new Ext.data.ArrayStore(// 动态获取数据
proxy : new Ext.data.HttpProxy(
url : 'arrayData.js'
),
reader : new Ext.data.ArrayReader(, [

name : 'id'
,
name : 'name'
])

)
]
);

);
我的arrayData.js文件为
[['1', ' 东城'], ['2', '西城'], ['3', '朝阳'], ['4', '丰台'], ['5', '石景山'],
['6', '海淀'], ['7', '门头沟'], ['8', '房山'], ['9', '大兴'], ['10', '昌平'],
['11', '顺义'], ['12', '通州']]

这几行改下:
store : new Ext.data.ArrayStore(// 动态获取数据
fields: ["id", "name"],
proxy : new Ext.data.HttpProxy(
url : 'arrayData.js'
),
reader : new Ext.data.ArrayReader(, [
name : 'id', name : 'name'])
)

另外就是你的arrayData.js,这个文件的名字能不能改成arrayData.txt或者arrayData.aspx之类的?总感觉用js有点不合适,但说不出原因
参考技术A 只要是xp就有这问题追问

什么意思?只要是xp都会出现这样的问题吗?我用的是win7了
也有这样的问题

为啥 Ext.grid.GridPanel 很慢?

【中文标题】为啥 Ext.grid.GridPanel 很慢?【英文标题】:Why Ext.grid.GridPanel is slow?为什么 Ext.grid.GridPanel 很慢? 【发布时间】:2015-12-11 13:31:22 【问题描述】:

我正在使用 Ext.grid.GridPanel,版本 ExtJs3.4。至少需要 6 到 7 秒将 1000 条记录加载到网格中。 我的 java 部分在不到 1 秒的时间内给出了结果,但渲染 需要 6 到 7 秒。 可能是什么问题呢? 有什么可能的解决方案来提高性能? 这是我的代码。

var grid = new Ext.grid.GridPanel(
                title:gridtitle,
                border: false,
                height: getGridHeight(),
                autoScroll:true,
                store: store,
                id:'grid',
                colModel: createColModel(gridnoofcols),
                loadMask: true,
                view: new Ext.grid.GroupingView(
                    autoFill:true,
                    groupTextTpl: getGroupConfig(),
                    emptyText: emptytext,deferEmptyText: false
                ),
                listeners: 
                    render : function(grid)
                      grid.store.on('load', function(store, records, options)
                        grid.getSelectionModel().selectFirstRow();       
                      );                      
                    
                   ,
                plugins: [filters],        
                bbar: new Ext.Toolbar(
                )
    );

Following are the Column model

var createColModel = function (finish, start) 
    var columns = [
        new Ext.grid.RowNumberer(
            header: "<span style=font-weight:bold;><%=SLNO%></span>",
            width: 50
        ), 
            dataIndex: 'slnoIndex',
            hidden: true,
            header: "<span style=font-weight:bold;><%=SLNO%></span>",
            filter: 
                type: 'numeric'
            
        , <%=liveVisionColumns.getGridHeaderBuffer(processID,language,checkFDAS).toString()%>
    ];
    return new Ext.grid.ColumnModel(
        columns: columns.slice(start || 0, finish),
        defaults: 
            sortable: true
        
    );

【问题讨论】:

您为什么没有对查询进行分页以填充网格? Extjs 网格面板与分页配合得很好 我会尝试分页........实际上 Ext.ux.grid.livegrid.GridPanel 比 GridPanel 快,但它有一些问题,如过滤器,如果我们自动加载网格点击标题,但感谢您的宝贵意见。 您对 livegrid 过滤器有任何想法吗?过滤器不适用于 extjs3.4 livegrid? 【参考方案1】:

由于记录数量和分组视图的原因,它可能会很慢。但是,6-7 秒还是太多了。列模型可能是问题所在。列数和渲染器确实会减慢 extjs 网格。尽量避免使用列渲染器。 可以分享一下列模型吗?

【讨论】:

我已经编辑了我的帖子。请调查一下...请让我知道问题 我没有使用列渲染器,但是我的标题是动态的。有什么区别吗? 不,它没有。但是您仍然没有显示“liveVisionColumns.getGridHeaderBuffer”的结果。最后,您能做的最好的事情就是分析您的网格。覆盖 extjs grid_panel 将“console.log”放在里面的某个地方,看看什么需要这么长时间。注意:不分组视图也可以试试看结果吗? liveVisionColumns.getGridHeaderBuffer header: 'Vehicle No', dataIndex: 'vehiclenoindex', width:100, filter: type:'string ' , 看起来很简单。正如我所说,你应该分析你的网格。在我 8 年以上的 extjs 经验中,我做了很多次这样的事情,并解决了很多问题:) 只需挖掘网格面板源代码,将其复制到您的项目中,更改类名,将 console.log 添加到渲染方法,然后使用它而不是原始组件。

以上是关于ext arraystore怎么使用了?为啥我的下拉菜单里的数据出不来的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的下一个和上一个按钮在 IOS 上看起来很奇怪?

为啥tab键打出来的下框线输入字符就不见了

Extjs的grid和树以及几种常用的插件使用详解

iOS - 为啥我的下一个视图回调我以前的视图?

为啥 Ext.grid.GridPanel 很慢?

为啥我的 favicon 在我的下一个 js 应用程序中不起作用?