私はExt JS 3.4の経験があり、ストアでDataviewを作成し、tplを使用してアイテムを表示/レンダリングできます。
しかし、Ext Designer でレイアウト用のアイテム レンダラーを (Flex のように) 作成したいと考えています。そして、DataView でこのコンポーネントを繰り返します。DataView または ListView のアイテム Renderer に関するドキュメントが見つかりませんでした。
誰もこれを経験していますか?
よろしく、クリス。
私はExt JS 3.4の経験があり、ストアでDataviewを作成し、tplを使用してアイテムを表示/レンダリングできます。
しかし、Ext Designer でレイアウト用のアイテム レンダラーを (Flex のように) 作成したいと考えています。そして、DataView でこのコンポーネントを繰り返します。DataView または ListView のアイテム Renderer に関するドキュメントが見つかりませんでした。
誰もこれを経験していますか?
よろしく、クリス。
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/
ボタン コンポーネントを使用していますが、独自の複雑なコンポーネントを同じ方法で使用できます。
幸運を。