2017-02-17 11 views
0

ExtJs 4.2からExtJs 6.2にアップグレードしています。ドラッグアンドドロップの仕方が変わりました。重要であるかもしれないディテールがありますGridViewdragdropでExtJs 4.2とExtJs 6.2の変更点

Ext.define('App.view.images.List', { 
    extend: 'Ext.grid.Panel', 
    viewConfig: { 
     plugins: { 
      ptype: 'gridviewdragdrop', 
      containerScroll: true 
     }, 
     enableTextSelection : true 
    }, 

::ストアを注文された:ExtJSの4.2

Ext.define('App.store.images.Images', { 
    extend: 'Ext.data.Store', 
    sorters: [{ 
     property: 'position' 
    }], 

を、ExtJSの4.2では

は、私は、グリッド内のそれの簡単な使用していましたレコードの順序を変更するには、dropイベントで何もしない必要がありました。単純なドラッグ&ドロップで行の順序が変更されました。後でストアのpositionフィールドを更新しました。

ExtJs 6.2の場合、ドラッグアンドドロップは行の順序を変更しません。 dragイベントが発生するだけで、テーブル内のレコードとグリッド内の行の順序を変更するのは、イベントハンドラのコードに依存しているようです。

どこかにバグがありますか、それともExtJs 4と6の間でドラッグアンドドロップ機能が変更されていますか?

答えて

0

ExtJs 6では、ソーターの設定がドラッグアンドドロップよりも優先されるように見えます。したがって、ドラッグアンドドロップのみを使用してソーターでグリッドを並べ替えることはもはや不可能です。

並べ替えられたグリッドを並べ替えるときに、dropイベントが発生し、予想されるデータが受信されますが、グリッドは並べ替えられません。 drop -handlerで店舗が分類された不動産を変更する必要があります。ビューは新しいデータに従って更新されます。すなわち

:ExtJSの4において

  • 、ドラッグアンドドロップは、視覚的にグリッドを並べ替え、そして我々は、順序(ストアがでソートされているプロパティを更新)における変化を反映するためにストアを更新しなければなりません。
  • ExtJs 6では、ソートがドラッグアンドドロップによって適用される順序よりも優先されるため、基になるストアがソートされている場合、ドラッグアンドドロップでグリッドを視覚的に並べ替えることはできません。グリッドを並べ替えるには、dropハンドラでストアがソートされているプロパティを更新する必要があります。
関連する問題