0

我想在网格上调用 reconfigure 来更改列文本,就像这个例子一样

http://docs.sencha.com/extjs/4.2.0/extjs-build/examples/build/KitchenSink/ext-theme-neptune/#reconfigure-grid

但是我想从一个与网格无关的外部控件来完成它。

需要找到对网格的引用,因为当我将它传递给变量时,调用重新配置时出现无方法错误

任何帮助感谢感谢

编辑

如果您查看帖子中的链接,那么此功能:

onShowOfficesClick: function(){ 
var grid = this.down('grid'); 
Ext.suspendLayouts();
grid.setTitle('Employees');
grid.reconfigure(this.createOfficeStore()

显示如何重新配置​​网格。

我想要做的是从外部函数获取网格参考,不确定它是否可能

这是我的一些代码

var Social_Environment_Grid = Ext.create('Ext.data.Store', {

去创建一个商店,不太相关

然后是我要调用的单独 Jquery 函数

Social_Environment_Grid.reconfigure(false, newColumArray) 

但是我得到一个错误 Social_Environment_Grid has no method reconfigure,所以我猜这不是正确的对象引用

希望这是有道理的

编辑固定

感谢大家的评论和回答,这是我的问题

 var Panel1 = Ext.create('Ext.panel.Panel', {
    layout: 'fit',
    height: 400,
    layout: {
        type: 'vbox', // Arrange child items vertically
        align: 'stretch', // Each takes up full width
        padding: 5
    },
    items: [{ // Results grid specified as a config object with an xtype of 'grid'
        xtype: 'grid',
        id: 'Panelxx1',
        columns: [

然后打电话

Ext.getCmp('Panelxx1').reconfigure(false,alternativeIndex); 

我没有引用网格,也没有正确调用对象引用,谢谢大家的帮助

4

1 回答 1

1

为了更新网格视图,您必须做的是调用reconfigure网格对象上的方法。也就是说,grid您的代码示例中的变量。

doc中所述,此方法接受一个新的 store 作为它的第一个参数,一个新的 columns 数组作为它的第二个参数,两者都是可选的。

因此,如果您的数据模型的字段发生更改,您必须使用更新的字段创建一个新商店。如果您的商店基于模型,您可以首先使用静态setField方法(例如My.Model.setFields(...))对其进行更新,然后使用此模型创建一个新商店,并将其传递给网格的reconfigure方法。

如果您的数据字段没有更改,您可以像在示例中那样跳过第一个参数,并仅对新列使用数组。

现在,您的问题似乎是在您要调用的地方获取对网格对象的引用reconfigure。有很多方法可以实现这一目标。最简单的一种(除了使用全局变量,你真的不应该这样做),是用 config 选项给你的网格一个 id id,当你需要你的网格时,你可以用Ext.getCmp(myGridId). 在您的情况下,这可能不是最干净的,但我们需要知道您要调用的上下文,reconfigure以便提供更合适的建议。

于 2013-05-31T08:15:34.573 回答