
/**
* 从grid删除一条记录并同步数据库
* @action url
* @grid grid
* @isConfirm 是否要确定对话框
* @rowId 要删除的rowid 如果为空或者小于0为当前行
* @afterDelete 回调函数
* @formId 表单的id (可为空)
*/
function deletCurentFromGrid(grid,url,rowId,afterDelete,noConfim,formId){
	var willDelete=true;
	if(!noConfim){
		willDelete=window.confirm('记录删除后将无法恢复\n您确定要删除该条记录？');
	}
	if(willDelete){
		if(url){
			submitReqWithErrorPro(url,
			function(response){
					var cIndex = rowId;
					if(!rowId && rowId!==0){
						cIndex=grid.getSelectedRowId();
					}
					grid.deleteRow(cIndex);
					afterDelete(result);
			}
			,formId);
		}
	}
}

/*
	删除操作 
	@删除信息对象 如:
		var deleteInfo={
		url:"/core/test/deleteProduct.action",
		grid:null,//grid 表格
		confirm:'删除数据将无法恢复\n您确定要删除?',
		dataIdName:'product.id',//要删除的数据id在action中的名称
		idInGrid:0,//id值所在grid中的位置;
		afterDelete:afterProcess, //删除后的回调函数
		whatevey:false
	}


*/
function deletAction(deleteInfo,rowId,dataId,urlPostfix){
	var grid =deleteInfo.gridCreator();
	var willDelete=true;
	if(deleteInfo.confirm){
		willDelete=window.confirm(deleteInfo.confirm);
	}
	if(willDelete){
		if(rowId){
			grid.selectRow(grid.getRowIndex(rowId));
		}else{
			rowId=grid.getSelectedRowId();
		}
		if(!dataId && dataId!==0){
			dataId=grid.cells(rowId,deleteInfo.idInGrid).getValue()
		}
		var url=addParaToUrl(deleteInfo.url,deleteInfo.dataIdName,dataId);
		if(urlPostfix && urlPostfix!=='0'){
			url=url+urlPostfix;
		}
		submitRequest(url,
			function(response){
				_webClentAjaxAfterRequest(response,function(result){
					grid.deleteRow(rowId);
					if(deleteInfo.afterDelete){
						deleteInfo.afterDelete(result);
					}
				});
			}
		);
		
	}
}

function addPageToUrl(url,pageIndex){
 return addParaToUrl(url,'newPage.curPageNo',pageIndex);
}

/**
* 编辑操作
* @editInfo 操作的信息对象
* @saveEdit 是否为保存(否则为加载待修改的数据)
* @rowId 可选参数grid的行参数
* @rowId 可选参数待修改的数据id值
*/
function editAction(editInfo,saveEdit,rowId,dataId){
	if(!saveEdit){
		_toEditData(editInfo,saveEdit,rowId,dataId)
	}else{
		 _editData(editInfo,rowId)
	}

}

function _toEditData(editInfo,saveEdit,rowId,dataId){
	var grid=editInfo.gridCreator();
	if(!rowId){
		rowId=grid.getSelectedRowId();
	}else{
		grid.selectRow(grid.getRowIndex(rowId));
	}
	if(!rowId&&rowId!==0&&rowId!=='0'){
		showDialogue("请选择要修改的行");
		return ;
	}
	if(!dataId && dataId!==0 && dataId!=='0'){
			dataId=grid.cells(rowId,deleteInfo.idInGrid).getValue()
	}
	var url=addParaToUrl(editInfo.loadUrl,editInfo.dataIdName,dataId)
	submitReqWithErrorPro(url,
		function(response){
			var product;
			eval("product= response."+editInfo.responseDateName);
			editInfo.editWindowCreator();
			setDataToForm(editInfo.formId,product,editInfo.dataNameInfo,editInfo.responseDateName);
		}
		);
}

function _editData(editInfo,rowId){
	var win =editInfo.editWindowCreator();
	win.close();
	var grid=editInfo.gridCreator();
	if(!rowId){
		rowId=grid.getSelectedId();
	}
	submitReqWithErrorPro(editInfo.saveUrl,
			function (result){
				var product ;
				eval("product= result."+editInfo.responseDateName);
				changeGridRowValue(grid,editInfo.dataNameInfo,product,rowId);	
					if(editInfo.afterCall){
						editInfo.afterCall(result);
					}
						},editInfo.formId);
}
 
function addAction(addInfo,isSave,rowId,dataId){
	if(isSave){
		_addData(addInfo,rowId,dataId);
	}else{
		_toAddData(addInfo,rowId,dataId);
	}
}

function _toAddData(addInfo,rowId,dataId){
	var grid=editInfo.gridCreator();
	if(rowId){
		grid.selectRow(grid.getRowIndex(rowId));
	}
	 addInfo.windowCreator();

}

function _addData(addInfo,rowId,dataId){
	var win=addInfo.windowCreator();
	if(win){
		win.close();
	}
	var grid=editInfo.gridCreator();
	submitReqWithErrorPro(addInfo.addUrl,
			function (result){
				var product ;
				eval("product= result."+addInfo.responseDateName);
				if(grid){
					addRowToGrid(grid,product,nameInfos,product.id,'current');
				}
					if(addInfo.afterCall){
						addInfo.afterCall(result);
					}
						},addInfo.formId);

}

  


/**
* 默认的list请求函数 默认情况下如果出现错误不进行回调的而且回调函数传递的是result结果对象
*listUrl 请求的url
*grid 显示的grid
*nameInfo 数据的name信息
*afterFunction 回调函数
*formId 表单的id 
*callAnyway 如果不论是否出现后台异常任然回调将其设为TRUE
*/
function defaultListData(listUrl,grid,nameInfo,afterFunction,formId,callAnyway){
	submitReqWithErrorPro(listUrl,
		function (result){
			var xml = data2Webxml(result.allVo,nameInfo,"id");
	 			grid.clearAll(false);
	 			grid.loadXMLString(xml);
	 			if(afterFunction){
		 		afterFunction(result);
	 		}
	
	},formId,false,callAnyway)

}


