添加一行的方法:
function ext2_addLine(extGrid) { //传入的对象为EditorGridPanel
if(typeof(extGrid) == Ext.grid.EditorGridPanel) { //hack
extGrid.stopEditing();
}
var stores = extGrid.getStore();
var fieldsArr = [];
var fields = {};
for (var i=0; i<extGrid.getColumnModel().getColumnCount(); i++) {
var tmp = {};
var field = extGrid.getColumnModel().getDataIndex(i);
tmp.name = field;
fieldsArr.push(tmp);
fields[field] = '';
}
var entry = Ext.data.Record.create(fieldsArr);
var row = new entry(fields);
var count = stores.getCount();
stores.insert(count, row);
try {
extGrid.getSelectionModel().selectRow(count, false);
extGrid.stopEditing();
extGrid.view.focusRow(count);
}
catch (E){
}
//extGrid.startEditing(count, 0);
return row;
}
删除一行的方法:
function ext2_removeLine(extGrid, lineToDelete, recordToRemove) { //lineToDelete在这里传过来的是一个隐藏的字段,不要纠结参数...
if(typeof(extGrid) == Ext.grid.EditorGridPanel) { //hack
extGrid.stopEditing();
}
if (Ext.isEmpty(recordToRemove)) {
recordToRemove = extGrid.getSelectionModel().getSelected();
}
if (recordToRemove){
//remove it
extGrid.getStore().remove(recordToRemove);
//remove the recordToRemove in ModifiedRecords too.
var records=extGrid.getStore().getModifiedRecords();
Ext.grid.removeFromArray(records,recordToRemove.id);
if(extGrid.getStore().getCount() > 0 )
extGrid.getSelectionModel().selectFirstRow();
//set to hidden fields
if (lineToDelete) {
var obj = document.forms[0][lineToDelete];
if (obj) {
var deletedLines = obj.value;
var id = recordToRemove.get("id");
if(!Strings.isEmpty(id)){
if (Strings.isEmpty(deletedLines)) {
deletedLines="";
}
if(deletedLines.length>0){
obj.value = deletedLines+","+id;
}else{
obj.value = id;
}
}
}
}
}
}
Ext.grid.removeFromArray = function(records,id){
for(var i = 0;i < records.length;i++){
if(records[i] && records[i].id){
if(id == records[i].id){
records.splice(i,1);
break;
}
}
}
}
// 一切都是为了留个纪念....曾今...那是....如今