如何让ExtJs 4面板在数据刷新时自行更新

时间:2012-10-11 13:46:45

标签: extjs

我正在使用ExtJs 4。

我有一个看起来像这样的小组:

var panel = Ext.create('Ext.panel.Panel',{
    title: 'Current Transaction Data',
    width: 500,
    items:[
           {
               id: 'field1',
               xtype: 'textfield',
               label:'Field 1',
           },
           {
               id: 'field 2',
               xtype: 'textfield',
               label:'Field 1',
           }
    ],

})

我有一个函数发出一个看起来像这样的ajax请求:

var myDataObject;
var getData= function(callback){ 
    Ext.Ajax.request({
        url: 'MY-URL-TO-GET-DATA',
        success: function(response){
            myDataObject= Ext.JSON.decode(response.responseText)}})}

我想要做的是在检索数据对象后,我想告诉面板使用新数据进行更新。我正在寻找像panel.update(数据)这样的电话。

我在面板上看到了update()方法,但是不明白如何使用它。我会覆盖它吗?它说了一些关于使用模板的内容,但我没有找到任何好的例子。我甚至不确定这是否是这样做的首选方法。

我使用网格面板和使用数据存储做了类似的事情。在这种情况下,我可以在数据存储上调用refresh(),但我不想为这个特定问题使用网格。

1 个答案:

答案 0 :(得分:1)

您可以使用panel.update(data)但是如果需要,可以使用配置的tpl有效地将文本作为innerHTML注入。面板中的两个文本字段是什么?您可以将其中一个字段的文本设置为数据,或者向面板添加Ext.form.field.DisplayView,并将其值设置为数据。

编辑:正如下面的评论所示,答案是子类并添加一个方法来进行数据刷新。