편집 가능한 형태 EditorGrid에서, 내가 입력 된 데이터의 행을 선택, 삭제 버튼을 클릭 한 행의 데이터가 삭제되고, 그럼 내가 양식 제출 버튼을 클릭하면, 삭제 된 행의 데이터는 여전히 데이터베이스에 삽입 ...

 

문제 설명 : 편집 가능한 테이블에서 내가 입력 한 데이터 라인을 선택, 삭제 버튼을 클릭, 행 데이터가 삭제되고, 그럼 내가 버튼을 제출 양식을 클릭하면, 삭제 된 행의 데이터는 여전히 데이터베이스에 삽입됩니다.

 

1 : 나는 테이블을 편집 할 수 있습니다 :

  

2 : 당신이 행을 선택하면 행의 삭제 버튼을 클릭합니다 :

  

3 : 성공적으로 삭제 한 후 :

  

그것은 내가 "제출"버튼을 클릭하면, 여전히 (I 삭제 한 행 데이터 포함) 데이터베이스에 두 개의 레코드를 삽입하는 것입니다.

나는 코드의 라인을 삭제 :

/*
 *  1:grid是当前的可编辑表格 我的是:var grid  =   newExt.grid.EditorGridPanel({});
 * 2: store是可编辑表格中定义的数据源,我的是:var store = newExt.data.JsonStore({});
 */
       var sm = grid.getSelectionModel();
       var cell =sm.getSelectedCell();
      
       var record =store.getAt(cell[0]);
       store.remove(record);

 

해결 방법 : 상점에서 속성 구성 옵션을 추가합니다 :

  pruneModifiedRecords : 사실

  API 설명 :이 가게의 사실이다로드 또는 기록이 삭제 될 때, 기본은 내가, 사실, 행 삭제 작업 데이터가 삭제됩니다 라인을 클릭하면 말을 거짓 (모든 레코드의 정보를 수정 삭제됩니다. 당신이 옵션이 참 구성하는 경우 우리가 줄 작업을 삭제할 때이 있지만 지울 데이터를 삭제하려는 행을 가하고, 아무것도 표시되지 않습니다.


다음과 같습니다 :

var store = new Ext.data.JsonStore({
       data : data,
       pruneModifiedRecords : true,
       fields : ['detailCosts','detailType','detailPaid','detailDescription',{name : 'detailTime',type : 'date', dateFormat : 'Y-m-d'}]
    });

그 데이터가 추가 행 후 삭제 작업을 제출 한 후 원래의 백업이 삭제되지 않습니다 제출 버튼을 클릭!

 그는 추가 :

  새로운 라인 :

Var countnum=10;//你的可编辑表格的初始最大行数
 var p = new Record({
           detailCosts : '',
           detailType  : '',
           detailPaid  : '2',
           detailTime  : '',
           detailDescription : ''
       });
       grid.stopEditing();
       store.insert(countnum,p);
       countnum++;

 이동 :

var sm =grid.getSelectionModel();
       var cell = sm.getSelectedCell();
       var record = store.getAt(cell[0]);
       var index = cell[0];
       if(index > 0){
           store.remove(record);
           store.insert(index-1,record)
           grid.getView().refresh();
       }

 다운 :

var sm =grid.getSelectionModel();
       var cell = sm.getSelectedCell();
       var record = store.getAt(cell[0]);
       var index = cell[0];
      
       if(index < store.getCount()-1){
           store.remove(record);
           store.insert(index+1,record)
           grid.getView().refresh();
       }

HTTPS : //my.oschina.net/mapsh/blog/598139 재현

추천

출처blog.csdn.net/weixin_33757609/article/details/91691130