問題の説明:編集可能なテーブルでは、私は、入力されたデータ行を選択した、[削除]ボタンをクリックし、行のデータが削除され、その後、私は送信ボタンをフォーム上でクリックすると、削除された行データがまだデータベースに挿入されます。
1:私は、テーブルを編集することができます。
2:あなたが行を選択すると、行の削除]ボタンをクリックします。
3:正常に削除した後:
それは私が「送信」ボタンをクリックすると、まだ(私は削除された行データを含む)、データベースに2つのレコードを挿入することです。
私は、コードの行を削除しました:
/*
* 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の説明:これは、ストア内の真ではロードまたはレコードが削除されたときに、デフォルトでは、私は、実際には、行の削除操作のデータが削除される行をクリックしたときに言って偽である(すべてのレコードの情報を変更クリアされます。私たちはライン操作を削除する場合がありますが、あなたがクリアしたデータを削除したい行を入れて、あなたが設定している場合のオプションがtrueの場合、何も表示されません。
次のように:
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で再現