私は、永続的なフィールド(モデルファイルで定義されているフィールド)をプロパティグリッドに表示したいと思います。ExtJS:Ext.grid.property.Gridでモデルを表示
プロパティグリッド:私は(コントローラに)selectイベントにそうような項目を読み込む
Ext.define('ATCOM.view.InspectorProperties', {
extend : 'Ext.grid.property.Grid',
alias : 'widget.inspectorProperties',
cls : 'property-grid',
height : 150,
listeners : {
beforerender : function() {
// Rename the first column
var cols = this.getView().getHeaderCt().getGridColumns();
cols[0].setText("Property");
},
beforeedit : function(e) {
// Read-only
return false;
}
},
source : {} // Start with no items
});
は、レコードは我々のモデルオブジェクトとGETINFO()であるプロパティグリッドであります:
var source = {};
source.id = record.get('id');
source.start = record.get('start');
source.end = record.get('end');
this.getInfo().setSource(source);
モデル:
Ext.define('ATCOM.model.Shift', {
extend : 'Ext.data.Model',
fields : [ 'id', {
name : 'start',
type : 'date',
}, {
name : 'end',
type : 'date',
}, 'position', 'controller' ],
hasMany : {
model : 'ATCOM.model.ShiftAlloc',
name : 'allocations'
}
});
は(私の場合はallocations
を除く)ので、すべての非結合フィールドは自動的にプロパティグリッドに送られ、これについて移動する良い方法はありますか? ATCOM.model.Shift.getFields()
のフィールドを読み込み、残りのキーを保持するためにpersistent:false;
のチェックを繰り返すこともできますが、インスタンスからクラス参照を取得するにはどうすればよいのですか。ATCOM.model.Shift
をインスタンスのどれかから取得するにはどうすればよいですか?私はgetFields()を呼び出すことができますか?
EDIT:
クラス名を見つけるために:http://docs.sencha.com/ext-js/4-1/#!/api/Ext.Base-static-method-getName
+1の名前を変更する方法とその読み方を示すコードただ...素敵! – HDave
歓声、それは見つけるためにいくつかの掘りを取る:\ –