/**
* 功能:支持JSON格式提交,需要加载hiddensubmit.js文件
* @return ture 成功 false 失败
* @param {} formid
*/
ECSideUtil.saveGridExt=function(formid)
{
var ret = ECSideUtil.generateJson(formid);
var ecsideObj = ECSideUtil.getGridObj(formid);
var form = ecsideObj.ECForm;
var url = form.getAttribute("action");
var sub = new HiddenSubmit(url);
sub.add('_gt_json',ret);
sub.submit();
//保存成功
if(sub.getProperty("return/code") > 0)
{
ECSideUtil.getRemoveUpdatedClassRows(ecsideObj.forUpdateRows, "");
ECSideUtil.getRemoveInsertedClassRows(ecsideObj.forInsertRows, "");
ECSideUtil.getRemoveDeletedRows(ecsideObj.forDeleteRows, "");
return true;
}
//保存失败
else
{
return false;
}
}
/**
* @
* 支持JSON格式提交
* 根据表格产生json文本
*
*/
ECSideUtil.generateJson=function(tableId)
{
return "{"+ECSideUtil.getFiledJSON(tableId) +","+ECSideUtil.getInsertJSON(tableId)+","+ECSideUtil.getDeleteJSON(tableId)+","+ECSideUtil.getUPdateJSON(tableId)+"}";
}
/**
* 生成字段名的JSON
* @param {} tableId
*/
ECSideUtil.getFiledJSON=function(tableId)
{
var ecsideObj= ECSideUtil.getGridObj(tableId);
var headCells = ecsideObj.ECListHead.rows[0].cells;
var colsName = "/"fieldsName/":[";//列名
if (headCells != null)
{
for (var i = 0; i < headCells.length; i++) {
if (headCells[i].getAttribute("columnname") != null)
{
colsName += "/""+headCells[i].getAttribute("columnname")+"/",";
}
}
colsName = colsName.substring(0,colsName.length -1);
colsName +="]";
}
return colsName;
}
/**
* 生成插入行的JSON数据格式
* @param {} tableId
*/
ECSideUtil.getInsertJSON=function(tableId)
{
//得到增加行
var insertRows = "/"insertedRecords/":[";
var ecsideObj= ECSideUtil.getGridObj(tableId);
var rowsi = ECSideUtil.getInsertRows(tableId);
ecsideObj.forInsertRows = rowsi;
for (var i = 0; i < rowsi.length; i++)
{
insertRows +="["
var pars = Form.serialize(ecsideObj.forInsertRows[i], true);
for(sKey in pars){
if(pars[sKey]== "" || pars[sKey] == 'null' || pars[sKey] == undefined)
pars[sKey] = "";
insertRows += "/""+pars[sKey]+"/","
}
insertRows = insertRows.substring(0,insertRows.length -1);
insertRows +="],"
}
if(insertRows.indexOf(",") >0) insertRows = insertRows.substring(0,insertRows.length -1);
insertRows +="]";
return insertRows;
}
/**
* 生成更新行的JSON数据格式
*/
ECSideUtil.getUPdateJSON=function(tableId)
{
var updateRows = "/"updatedRecords/":[";
var ecsideObj= ECSideUtil.getGridObj(tableId);
var rowsi = ECSideUtil.getUpdatedRows(tableId);
ecsideObj.forUpdateRows = rowsi;
for (var i = 0; i < rowsi.length; i++)
{
var pars = ECSideUtil.getRowCellsMap(ecsideObj.forUpdateRows[i], tableId);
updateRows +="["
for(sKey in pars){
if(pars[sKey]== "" || pars[sKey] == 'null' || pars[sKey] == undefined)
pars[sKey] = "";
updateRows += "/""+pars[sKey]+"/","
}
updateRows = updateRows.substring(0,updateRows.length -1);
updateRows +="],"
}
if(updateRows.indexOf(",") > 0) updateRows = updateRows.substring(0,updateRows.length - 1); //去掉","
updateRows +="]";
return updateRows;
}
/**
* 生成删除行的JSON数据格式
* @param {} tableId
*/
ECSideUtil.getDeleteJSON=function(tableId)
{
var deleteRows = "/"deletedRecords/":[";
var ecsideObj= ECSideUtil.getGridObj(tableId);
var rowsi = ECSideUtil.getDeletedRows(tableId);
ecsideObj.forDeleteRows = rowsi;
for (var i = 0; i < rowsi.length; i++)
{
deleteRows +='[';
var pars = ECSideUtil.getRowCellsMap(ecsideObj.forDeleteRows[i], tableId);
for(sKey in pars){
if(pars[sKey]== "" || pars[sKey] == 'null' || pars[sKey] == undefined)
pars[sKey] = "";
// else
deleteRows += "/""+pars[sKey]+"/","
}
deleteRows = deleteRows.substring(0,deleteRows.length -1);
deleteRows +="],"
}
if(deleteRows.indexOf(",") > 0) deleteRows = deleteRows.substring(0,deleteRows.length - 1);
deleteRows +="]";
return deleteRows;
}