当前位置: 首页 > 知识库问答 >
问题:

ExtJS:创建动态存储\grid

齐琦
2023-03-14

你好,伙计们,我在一个动态存储中学习,我从数组中获得一个数据,并创建一个存储,但如果我试图将列和数据加载到我的网格中,我会得到"未捕获的类型错误:无法读取未定义的属性'getProxy'"

控制器:

  onSqlChange: function (gridPanel, value) {
var me = this;

Ext.Ajax.request({
    url: '{url action=getSqlDetails}',
    params: {
    fileName: value
    },
    success: function (response) {
    var text = JSON.parse(response.responseText);
    //console.log(text);
    var grid = me.mainWindow.grid;
    var columns = text.columns;
    var cols = new Array();
    columns.forEach(function (item) {
        cols.push({
        name: item,
        type: 'string'
        });
    });

    var SqlResult = Ext.create('Ext.data.Store', {
        fields: cols,
        proxy: {
        type: 'ajax',
        url: '{url action=getSqlDetails}',
        reader: {
            type: 'json',
            root: 'data'
        }
        },
    });

    grid.reconfigure({
        columns: columns,
        store: SqlResult
    });
    grid.show();
    }
});
}

window.js:

Ext.define('Shopware.apps.UnSqlReader.view.window.Window', {
extend: 'Enlight.app.Window',
alias: 'widget.main-window-view',
height: 700,
width: 1200,
layout: 'fit',
title: '{s name=window_title}SQL Reader{/s}',
initComponent: function () {
var me = this;
me.items = me.getItems();
me.dockedItems = me.createDockedItems();
me.callParent(arguments);
},
createDockedItems: function () {
var me = this;
return [
    {
    width: 185,
    xtype: 'toolbar',
    dock: 'top',
    items: [
        {
        xtype: 'combobox',
        id: 'sqlField',
        editable: false,
        emptyText: 'Select SQL file',
        displayField: 'name',
        valueField: 'name',
        store: Ext.create('Shopware.apps.UnSqlReader.store.UnSqlReaderFileList'),
        listeners: {
            change: function (field, newValue) {
            me.fireEvent('onSqlChange', me, newValue);
            }
        }
        }
    ]
    }
];
},
getItems: function () {
var me = this;
me.grid = Ext.create('Ext.grid.Panel', {
    alias: 'widget.view-grid-grid',
    hidden: true,
    columns: [
    ]
});
return [me.grid];
}

});

共有1个答案

韩寒
2023-03-14

我们可以直接从响应json中使用text.data来填充存储中的数据,而不是再次调用ajax

var SqlResult = Ext.create('Ext.data.Store', {
        fields: cols,
        data:text.data
    });
 类似资料:
  • 如何在一个类中创建和实例化jpa存储库?我现在的情况是,我必须在一个泛型类中为不同的实体创建存储库。 我可以很容易地为Neo4j存储库这样做, 对于JpaRepostory,我检查了留档,发现了这个, 我不确定如何在上面的代码中实例化工厂。 另外,我不能像为Neo4j那样通过指定域类来创建存储库吗?

  • 问题内容: 如何在类内创建和实例化jpa存储库?我处于一种情况,必须为通用类中的不同实体创建存储库。 对于Neo4j存储库,我可以轻松地做到这一点,例如, 对于JpaRepository,我检查了文档并发现了这一点, 我不确定如何在以上代码中实例化工厂。 还不能通过指定域类来像创建Neo4j一样创建存储库吗? 问题答案: 我终于以这种方式工作了, 通过SimpleJpaRepository,我可以

  • 主要内容:创建一个远程存储库在本章中,我们将看到如何创建一个远程Git仓库; 我们需要一个远程Git仓库来执行团队协作。这一篇文章很重要,直接影响到后面的章节的学习。所以,希望大家可先耐心地看完本章内容,并按本章一步步的操作。 创建一个远程存储库 我们将演示在 http://git.oschina.net/ 软件项目的托管平台上创建和初始化一个新的存储库。 注:你也可以使用 GitHub (http://github.com

  • 问题内容: 你好,我有这个设置 我需要为每个按钮获取以下内容 在Java中是否可以为我声明的每个按钮动态创建此按钮?因为当我有5个按钮时,我不需要3x5 = 15行代码,而是只有几行具有动态创建的按钮。 问题答案: 编写一个小循环并将您的按钮存储在数组中:

  • 你好,我已经准备好了 我需要为每个按钮获得以下内容 在Java中,是否可以为我声明的每个按钮动态创建它?因为当我有5个按钮时,我不希望3x5=15行代码,而只希望有几行动态创建的按钮。

  • 问题内容: 我们有大量的应用程序,其中我们以JSON的形式从远程Web服务中获取数据,然后使用解析器将其转换为Core-Data模型。 对于我们的一个应用程序,我认为我们应该做一些不同的事情。 此应用程序具有 只读数据* ,该 数据 易失 ,因此 不会在本地缓存很长时间 。JSON 具有 大量嵌套的“对象” 层次结构 。文档通常包含不超过20个顶级项目,但最多可以包含10万个。 * 我不认为我想创