0

次の問題があります。

人のデータを使用して TreePanel を構築していますが、リーフ、cls、およびテキスト属性を定義せずにそのモデルを定義する方法がわかりません。「名前」が各ノードのノードテキストになることは望ましくありません。

私のモデルは次のように定義されています:

Ext.define('People', {
     extend: 'Ext.data.Model',
     fields: [
         {name: 'Name', type: 'string'},
         {name: 'Surname',  type: 'string'},
         {name: 'Email',       type: 'string'}
         {name: 'BirthDate',  type: 'string'}
     ]
});

私のTreeStore(今のところ静的データを使用していますが、サーバーの人物モデルのリストを返すサーバーへのajax呼び出しからロードされます)。明らかに、サーバー モデルでリーフ、テキスト、および cls 属性を定義したくありません。

Ext.create('Ext.data.TreeStore', {
    root: {
        expanded: true,
        children: [
            {
                "Name":"Juan", 
                "Surname":"Hoz", 
                "Email": "user@domain.com", 
                "BirthDate":"19801205"
            },
            {
                "Name":"Marta", 
                "Surname":"Hoz", 
                "Email": "user2@domain.com", 
                "BirthDate":"19831210"
            }
    }
});

私の TreePanel は次のように定義されています。

Ext.create('Ext.tree.Panel', {
    id: 'treePersonId',
    store: mystore,
    hideHeaders: true,
    rootVisible: false,
    title: 'Persons',
    collapsible: true,
    resizable:true
});

これを行う正しい方法を見つけるのを手伝ってくれる人はいますか?

どうもありがとうございました、

ファン

4

1 に答える 1

0
Ext.define('Person', {
    extend: 'Ext.data.Model',
    fields: [{
        name: 'Name',
        type: 'string'
    }, {
        name: 'Surname',
        type: 'string'
    }, {
        name: 'Email',
        type: 'string'
    }, {
        name: 'BirthDate',
        type: 'string'
    }]
});

Ext.require('*');

Ext.onReady(function() {
    var store = Ext.create('Ext.data.TreeStore', {
        model: 'Person',
        root: {
            expanded: true,
            children: [{
                "Name": "Juan",
                "Surname": "Hoz",
                "Email": "user@domain.com",
                "BirthDate": "19801205"
            }, {
                "Name": "Marta",
                "Surname": "Hoz",
                "Email": "user2@domain.com",
                "BirthDate": "19831210"
            }]
        }
    });

    Ext.create('Ext.tree.Panel', {
        renderTo: document.body,
        store: store,
        hideHeaders: true,
        rootVisible: false,
        columns: [{
            xtype: 'treecolumn',
            dataIndex: 'Name',
            flex: 1
        }]
    });
});
于 2012-09-12T10:32:56.233 に答える