3

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

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;
            }
            });



    });

非常感谢。

4

2 回答 2

3

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

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

其中“id”是您商店的 id 字段。

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

于 2013-11-18T11:09:46.070 回答
1

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

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

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

于 2013-04-12T14:17:39.670 回答