2013-05-23 2 views
1

Ext 4.1에서는 아이템을 그리드에 놓을 예정이지만 레코드는 ID로 제공되고 팬텀 플래그는 false로 설정되어 저장소가 비어있는 채로 남아있게합니다 그 레코드를 그 레코드에 추가하십시오. 비록 그들이 격자에 잘 나타납니다.extjs 그리드 레코드 팬텀을 true로 설정하는 방법

여러 솔루션을 온라인에서 읽었으며 팬텀 플래그를 false로 설정하거나 id를 null로 설정하는 것이 좋습니다. 그러나 이것을 구현할 수 없습니까? 어디에서 설정합니까? 여기

하는 관련 링크 :

나는 viewConfig에 beforedrop 리스너를 추가하고 거기에 팬텀 플래그와 ID를 변경 시도

있지만, 작동하지 않았다. 어떤 도움이 필요합니까?

답변

1

나는 그것이 작동합니다. 이 시도 : 글을 쓰는 시점에서 내가 아무 생각이 없지만

// BUGFIX - when records are copied between grids, the copied record don't get its phantom set 
// to true, thus, no Create call will be made to the server. 
Ext.override(Ext.data.Model, { 

    copy : function(newId) { 
     var iNewRecord = this.callParent(arguments); 
     iNewRecord.phantom = true; 
     return iNewRecord;  
    } 
}); 

는 또한, true로보기 설정으로 copy 세트를 내 소스 테이블을 왜하거나 심지어 아무것도하지 여부 :

Ext.define('BS.view.items.Items' , 
{ 
    extend: 'BS.tree.Panel', 

    ... 

    viewConfig: { 
     plugins: { 
      ptype: 'treeviewdragdrop', 
      dragGroup: 'classrooms', 
     }, 

     // notice this 
     copy: true    
    }, 

});