以下は、Ext.grid.Panel コンポーネントで行が選択された後に発生するイベントです。項目 (子コンポーネント) の 1 つとして、内部にグリッドを含むフォームがあります。グリッドは、ネストされた Ext.grid.Panel コンポーネントの xtype を使用して追加されています。何らかの理由で、フォーム内のこのネストされたグリッド コンポーネントの行をクリックすると、このイベントが 2 回呼び出されます。それを選択したように見え、次にグリッドが更新され (完全に白/空白になります)、再レンダリングされます。このまったく同じグリッド (ネストされていない) の典型的な実装では、このイベントは 1 回だけ呼び出されます。
2 つの質問です。(1) 短期間でこれを修正するにはどうすればよいですか? (2) 原因を突き止めるために、これをどのようにトラブルシューティングしますか?
コントローラーのイベント:
'view-attribute-grid': {
selectionchange: function (selModel, selected) {
alert('selectionchange event called');
}
}
Grid は、この実装とほとんど同じように見えますが、いくつかの小さな変更があります。
http://demo.rasc.ch/eds/extjs42/rowedit.html?theme=classic
編集:
ネスティング:
..以下を参照してくださいxtype: 'view-attribute-grid',
...
Ext.define('App.view.TestForm', {
extend: 'Ext.form.Panel',
xtype: 'view-test-form',
requires: [
'Ext.form.field.Text',
'App.store.TestForm'
],
initComponent: function () {
this.addEvents('create');
Ext.apply(this, {
activeRecord: null,
frame: true,
defaultType: 'textfield',
bodyPadding: 5,
fieldDefaults: {
anchor: '100%',
labelAlign: 'right'
},
items: [{
fieldLabel: 'ID',
name: 'form_id',
allowBlank: false,
disabled: true
}, {
xtype: 'view-attribute-grid',
itemId: Ext.id()
}],
dockedItems: [{
xtype: 'toolbar',
dock: 'bottom',
ui: 'footer',
...