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