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

添加一行的方法:


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;
			}
		}
	}
}


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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值