1

私はExt JS 3.4の経験があり、ストアでDataviewを作成し、tplを使用してアイテムを表示/レンダリングできます。

しかし、Ext Designer でレイアウト用のアイテム レンダラーを (Flex のように) 作成したいと考えています。そして、DataView でこのコンポーネントを繰り返します。DataView または ListView のアイテム Renderer に関するドキュメントが見つかりませんでした。

誰もこれを経験していますか?

よろしく、クリス。

4

1 に答える 1

4

Yoは次のようなことができます:

Ext.create('Ext.data.Store', {
    storeId:'simpsonsStore',
    fields:['name', 'email', 'phone'],
    data:{'items':[
        { 'name': 'Lisa',  "email":"lisa@simpsons.com",  "phone":"555-111-1224"  },
        { 'name': 'Bart',  "email":"bart@simpsons.com",  "phone":"555-222-1234" },
        { 'name': 'Homer', "email":"home@simpsons.com",  "phone":"555-222-1244"  },
        { 'name': 'Marge', "email":"marge@simpsons.com", "phone":"555-222-1254"  }
    ]},
    proxy: {
        type: 'memory',
        reader: {
            type: 'json',
            root: 'items'
        }
    }
});

Ext.create('Ext.grid.Panel', {
    renderTo: Ext.getBody(),
    height: 200,
    store: Ext.data.StoreManager.lookup('simpsonsStore'),
    columns: [{
        text: 'Name',
        dataIndex: 'name',
        renderer: theRender,
    }]
});

function theRender(value, id, record)
{
    var id = Ext.id();
    Ext.defer(myComponent, 10, this, [id, record.get('name')]);
    return '<div id="' + id + '"></div>';
}

function myComponent(id, value) {
    new Ext.Button({
        text: value,
        handler : function(btn, e) {
            alert('Hi ' + value);
        }
    }).render(document.body, id);
}​

アイデアは、各行の div 要素を作成し、それらの要素でコンポーネントをレンダリングすることです。ここで、この実際の例を見てください。

http://jsfiddle.net/lontivero/p8qDL/

ボタン コンポーネントを使用していますが、独自の複雑なコンポーネントを同じ方法で使用できます。

幸運を。

于 2012-11-25T18:32:14.643 に答える