ExtJS 4.2.0 RowExpander,负载数据动态

时间:2013-03-26 11:08:41

标签: javascript plugins extjs

我想使用ExtJs插件“RowExpander”,但是,我会在事件expandbody被触发时加载数据。 我试过这段代码,但我不知道如何设置rwoBody扩展的内容:

this.GridPrincipal.getView().addListener('expandbody', function (rowNode, record, expandRow, eOpts) {


        Ext.Ajax.request({
            url: 'getData/' + record.get('id'),
            method: 'POST',
            success: function (result, request) {
            // retrive the data
            var jsonData = Ext.util.JSON.decode(result.responseText);
            //code to change the text of the RowBody
                            //....
            },
            failure: function (result, request) {
            Ext.MessageBox.alert('Failed', result.responseText);
            return false;
            }
            });



    });

非常感谢。

2 个答案:

答案 0 :(得分:3)

您可以将任何数据甚至其他组件渲染到扩展器中的一种解决方案是为其分配div。

plugins: [{
        ptype: 'rowexpander',
        rowBodyTpl: ['<div id="ux-row-expander-box-{id}"></div>'],
        expandOnRender: true,
        expandOnDblClick: true
    }]

其中'id'是商店的id字段。

接下来在expandbody事件中,您可以使用例如Ajax请求然后使用renderTo config将包含数据的面板或网格等渲染到此div中。

答案 1 :(得分:1)

我有同样的问题。我的解决方案是:

Ext.get(expandRow).setHTML('New Text');

我很想知道是否有更好的方法。