在Modx FormPanel中加载数据

时间:2011-08-13 13:05:37

标签: extjs modx modx-revolution

我正在开发一个客户经理页面,它基本上使用显示字段显示人物对象(名字,姓氏......)的详细信息而不进行任何编辑,我的视图小部件如下:

Players.panel.View = function(config) {
config = config || {};
Ext.apply(config,{
    border: false
    ,baseCls: 'modx-formpanel'
    ,url: Players.config.connectorUrl
    ,baseParams: { action: 'mgr/player/get' }
    ,items: [{
        html: '<h2>'+_('players.view.title')+'</h2>'
        ,border: false
        ,cls: 'modx-page-header'
    },{
        xtype: 'modx-tabs'
        ,bodyStyle: 'padding: 10px'
        ,defaults: { border: false ,autoHeight: true }
        ,border: true
        ,items: [{
            title: _('players.view.tab-header')
            ,defaults: { autoHeight: true }
            ,items: [{
                html: '<p>'+_('players.view.panel-desc')+'</p><br />'
                ,border: false
            } ,{
                xtype: 'compositefield',
                labelWidth: 120,
                items: [{
                            xtype     : 'displayfield',
                            value: 'First Name:',
                            width     : 120
                        },
                        {
                            xtype     : 'displayfield',
                            value: 'Yehia A.Salam'
                        }
                ]
            }]
        }]
    }]
});
Players.panel.View.superclass.constructor.call(this,config);
};
Ext.extend(Players.panel.View,MODx.Panel);
Ext.reg('players-panel-view',Players.panel.View);

然而,'mgr / player / get'永远不会被调用,我确定连接器工作正常,因为我已经在另一个网格小部件中使用它,我在这里错过了什么,我如何启动和ajax调用并填充displayFields。

感谢帮助, 而WOW,从未想过Modx Revolution的学习曲线会如此陡峭。

- 问候。 Yehia A.Salam

2 个答案:

答案 0 :(得分:0)

尝试添加'fields'参数,其中包含您要通过连接器检索的所有数据字段。

类似的东西:

Players.panel.View = function(config) {
config = config || {};
Ext.apply(config,{
    border: false
    ,baseCls: 'modx-formpanel'
    ,url: Players.config.connectorUrl
    ,baseParams: { action: 'mgr/player/get' }
    ,fields: [
          'id'
          ,'first_name'
          ,'last_name'
          ,...]
    ,...
});
...

答案 1 :(得分:0)

您可能需要创建另一个自定义xtype,它将调用该连接器。

Players.panel.View = function(config) {
config = config || {};
Ext.apply(config,{
    border: false
    ,baseCls: 'modx-formpanel'
    ,items: [{
        html: '<h2>'+_('players.view.title')+'</h2>'
        ,border: false
        ,cls: 'modx-page-header'
    },{
        xtype: 'modx-tabs'
        ,bodyStyle: 'padding: 10px'
        ,defaults: { border: false ,autoHeight: true }
        ,border: true
        ,items: [{
            title: _('players.view.tab-header')
            ,defaults: { autoHeight: true }
            ,items: [{
                html: '<p>'+_('players.view.panel-desc')+'</p><br />'
                ,border: false
            } ,{
                // this thing is the one that has the url + baseParams
                // and renders the compositefields
                xtype: 'another-xtype-to-call-connector' 
                ,preventRender: true
            }]
        }]
    }]
});
Players.panel.View.superclass.constructor.call(this,config);
};
Ext.extend(Players.panel.View,MODx.Panel);
Ext.reg('players-panel-view',Players.panel.View);

在此处,MODx.Panel仅用于生成布局。