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

データやその他のコンポーネントをエキスパンダーにレンダリングできる 1 つのソリューションは、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 に答える