2012-01-17 24 views
0

私のデータビューにExt.view.Viewを使用しています。 「selectchange」イベントトリガーを2回選択すると、しかし、 "multiSelect:true"を指定しないと、一度だけトリガされます。Extjs4 Ext.view.View selectイベントの選択イベントトリガー選択項目を選択したとき

Ext.define('myViewView', { 
    extend: 'Ext.view.View', 
    alias: 'widget.myViewView', 
    store: myContentStore, 
    cls: 'content-view-view', 
    tpl: myContentViewTpl, 
    multiSelect: true, 
    trackOver: true, 
    overItemCls: 'x-item-over', 
    itemSelector: '.thumb-wrap', 
    emptyText: emptyDataText, 
    resizable: true, 
    style: { 
     overflow: 'auto' 
    }, 
    listeners: { 
     selectionchange: function(dv, selections) { 

     } 
    }, 
    prepareData: function(data) { 
     Ext.apply(data, { 
      sizeString: Ext.util.Format.fileSize(data.size), 
      modifiedString: Ext.util.Format.date(data.modified, "m-d-Y:g-i-a"), 
      fileFormatPath: createBreadCrumb(data.filePath, false) 
     }); 
     return data; 
    } 

}); 

答えて

2

それはあなたが何か他のものを選択した場合にのみ二回発射(例えば。あなたは、1行を選択して、あなたは他のいずれかを選択します)。最初のイベントは、最初の行を選択解除し、2番目のイベントは他の行が選択された後に起動されるため、起動されます。 最も簡単な解決策は、イベントハンドラのバッファを設定することです。

例:

listView.on('selectionchange', function(view, nodes){ 
    // handler 
}, this, { buffer: 10 }); 

または

listeners: { 
    selectionchange: function() { 
     // handler 
    }, 
    buffer: 10 
} 
+0

は素晴らしい作業you.Itsありがとうございます。 – jeewiya