我们项目中对Ext.gird.EditorGridPanel是如何添加一行,删除一行的

来源:互联网 发布:怎么制作淘宝店铺标志 编辑:程序博客网 时间:2024/06/03 22:57

添加一行的方法:

function ext2_addLine(extGrid) {//传入的对象为EditorGridPanelif(typeof(extGrid) ==  Ext.grid.EditorGridPanel) { //hackextGrid.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) { //hackextGrid.stopEditing();}if (Ext.isEmpty(recordToRemove)) {recordToRemove = extGrid.getSelectionModel().getSelected();}if (recordToRemove){//remove itextGrid.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 fieldsif (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;}}}}


// 一切都是为了留个纪念....曾今...那是....如今

原创粉丝点击