2017-02-17 23 views
0

ExtJs 4.2에서 ExtJs 6.2로 업그레이드 할 때 드래그 앤 드롭 방식이 변경되었습니다. ,는 ExtJS 4.2GridViewdragdrop에서 ExtJs 4.2와 ExtJs 6.2 사이에 변경된 사항

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

: 저장소가 주문한 :

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

가 중요 할 수있는 세부 사항입니다 :

의 ExtJS 4.2, 나는 그리드에서 그것의 간단한 사용했다 레코드의 순서를 변경하려면 drop 이벤트에서 아무 것도하지 않아도됩니다. 간단한 끌어서 놓기로 선의 순서가 바뀌 었습니다. 나중에 상점의 position 필드를 업데이트했습니다.

ExtJs 6.2에서는 드래그 앤 드롭으로 선의 순서가 변경되지 않습니다. drag 이벤트 만 발생하며 테이블의 레코드와 그리드의 선 순서를 변경하는 것은 이벤트 처리기의 코드에 따라 달라집니다.

어딘가에 버그가 있습니까? 아니면 ExtJs 4와 6 사이에 드래그 앤 드롭 기능이 변경 되었습니까?

답변

0

마치 ExtJs 6에서 분류기 구성이 끌어서 놓기보다 우선시되는 것처럼 보입니다. 따라서 끌어서 놓기만을 사용하여 분류기로 격자를 재정렬하는 것이 더 이상 가능하지 않습니다.

정렬 된 표 순서를 변경하려고하면 drop 이벤트가 발생하고 예상되는 데이터를 수신하지만 표가 재정렬되지 않습니다. drop -handler에서 상점을 정렬 한 부동산을 변경해야합니다. 뷰는 새 데이터에 따라 업데이트됩니다. 즉

:

  • 의 ExtJS 4에서, 드래그 앤 드롭 시각적으로 그리드를 재정렬, 우리는 (저장소가에 정렬 속성을 업데이트) 순서의 변화를 반영하기 위해 저장소를 업데이트해야합니다.
  • ExtJs 6에서는 분류기가 정렬되어 있으면 분류기가 드래그 앤 드롭으로 부과 된 순서보다 우선하기 때문에 드래그 앤 드롭으로 눈금을 시각적으로 재정렬 할 수 없습니다. 표를 재정렬하려면 drop 처리기에서 저장소가 정렬 된 속성을 업데이트해야합니다.