//ModalChargeGridView Gridview的名字
//Con_Shp_Chg 数据库表名
//ConShpChgUID UID或者是标识列
//gs_Language 语言(中英文)
//ljs_HeaderWhereJson where的条件. 一般用于主表跟子表
GetChargeUpdateDataJson(ModalChargeGridView,"Con_Shp_Chg","ConShpChgUID", gs_UsrID, gs_Language, ljs_HeaderWhereJson);

  

  //Get Update Data
function GetChargeUpdateDataJson(agv_GridView, as_KeyTable, as_KeyField, as_UsrID, as_Language, ajs_HeaderUpdateWhereJson)
{
var ls_json = "";
//var la_array = [];
var ls_jsonResult = "";
var ls_Wherejson = "";
var ls_Option = "";
var ls_Value ="";
var ls_Type = "";
var la_Indicies = agv_GridView.batchEditHelper.GetDataItemVisibleIndices();
var li_ColumnCount = agv_GridView.GetColumnsCount();
var ls_FieldName = "";
var la_NotUpdateField = [];
for (var i = 0,gi_len = la_Indicies.length; i < gi_len ; i++)
{
      //Delete
if(agv_GridView.batchEditApi.IsDeletedRow(la_Indicies[i]) && agv_GridView.batchEditApi.GetCellValue(la_Indicies[i], as_KeyField) != null)
{
ls_json += GenerateJsonStringIfy("ModifyDate","-1","DateTime");
ls_json += GenerateJsonStringIfy("ModifyBy",as_UsrID,"String");
ls_json += GenerateJsonStringIfy("Status","-1","String"); ls_json = "["+ ls_json.substring(0, ls_json.length - 1)+"]";
ls_Option = "UPDATE"; ls_Wherejson = GenerateJsonStringIfy(as_KeyField, agv_GridView.batchEditApi.GetCellValue(la_Indicies[i],as_KeyField),"Int");
ls_Wherejson = "["+ ls_Wherejson.substring(0, ls_Wherejson.length - 1)+"]";
}
        //Update
else if (agv_GridView.batchEditApi.HasChanges(la_Indicies[i]) && !(agv_GridView.batchEditApi.IsNewRow(la_Indicies[i])) && agv_GridView.batchEditApi.GetCellValue(la_Indicies[i], as_KeyField) != null)
{
if (agv_GridView.batchEditApi.ValidateRow(la_Indicies[i]))
{
for (var j = 0; j < li_ColumnCount; j++) {
ls_FieldName = agv_GridView.GetColumn(j).fieldName;
if (ls_FieldName === "" ||la_NotUpdateField.indexOf(ls_FieldName) !== -1) {
continue;
}
else {
if (ls_FieldName === "ModifyBy") {
ls_Value = as_UsrID ;
}
else if (ls_FieldName === "RowNo")
ls_Value = (la_Indicies[i] + 1).toString() ;
else {
if (agv_GridView.batchEditApi.GetCellValue(la_Indicies[i], ls_FieldName) === null)
ls_Value = "";
else
ls_Value = agv_GridView.batchEditApi.GetCellValue(la_Indicies[i], ls_FieldName).toString().trim();
}
switch (ls_FieldName) {
case 'ts': ls_Type = 'TimeStamp'; break;
case as_KeyField: ls_Type = 'UID'; break;
default: ls_Type = 'String';
}
}
ls_json += GenerateJsonStringIfy(ls_FieldName,ls_Value,ls_Type);
} ls_json += GenerateJsonStringIfy("ModifyDate","-1","DateTime");
ls_json += GenerateJsonStringIfy("Language",as_Language,"String");
ls_json = "["+ ls_json.substring(0, ls_json.length - 1)+"]";
ls_Option = "UPDATE";
ls_Wherejson = GenerateJsonStringIfy(as_KeyField, agv_GridView.batchEditApi.GetCellValue(la_Indicies[i],as_KeyField),"Int");
ls_Wherejson = "["+ ls_Wherejson.substring(0, ls_Wherejson.length - 1)+"]";
}
}
        //Insert
else if ((!agv_GridView.batchEditApi.IsDeletedRow(la_Indicies[i]) && agv_GridView.batchEditApi.IsNewRow(la_Indicies[i])) || agv_GridView.batchEditApi.GetCellValue(la_Indicies[i], as_KeyField) == null)
{
if (agv_GridView.batchEditApi.ValidateRow(la_Indicies[i]) && !agv_GridView.batchEditApi.IsDeletedRow(la_Indicies[i])) {
ls_json += '';
for (var j = 0; j < li_ColumnCount; j++) {
ls_FieldName = agv_GridView.GetColumn(j).fieldName; if (ls_FieldName === "" || ls_FieldName === "ModifyDate" || ls_FieldName === "ModifyBy" || la_NotUpdateField.indexOf(ls_FieldName) !== -1) {
continue;
}
else {
if (ls_FieldName === "CreateBy")
ls_Value = as_UsrID ;
else if (ls_FieldName === "RowNo")
ls_Value = (i+1).toString();
else if (ls_FieldName === "QVSHPTUID")
ls_Value = 'QVSHPTUID';
else {
if (agv_GridView.batchEditApi.GetCellValue(la_Indicies[i], ls_FieldName) === null)
ls_Value = null;
else
ls_Value = agv_GridView.batchEditApi.GetCellValue(la_Indicies[i], ls_FieldName).toString().trim();
}
switch (ls_FieldName) {
case "QVSHPTUID": ls_Type = 'Custom'; break;
case 'CreateDate': ls_Type = 'DateTime'; break;
case 'ModifyDate': ls_Type = 'DateTime'; break;
case 'ts': ls_Type = 'TimeStamp'; break;
case as_KeyField: ls_Type = 'UID'; break;
default: ls_Type = 'String'; break;
}
}
ls_json += GenerateJsonStringIfy(ls_FieldName,ls_Value,ls_Type);
}
ls_json += GenerateJsonStringIfy("Language",as_Language,"String");
ls_json = "["+ ls_json.substring(0, ls_json.length - 1)+"]";
ls_Option = "INSERT";
ls_Wherejson = ajs_HeaderUpdateWhereJson;
}
}
ls_jsonResult += GenerateSQLJsonStringIfy(as_KeyTable, ls_json, ls_Wherejson, ls_Option);
ls_json = "";
ls_Wherejson = "";
}
return ls_jsonResult;
}

  

function GenerateSQLJsonStringIfy(as_Label, as_Data, as_Where, as_Option) {
var ljs_json = "";
//ac_quote = ac_quote == null ? "" : ac_quote;
if (as_Data !== null && as_Data !== "") {
if (typeof as_Data == "object" && as_Data.constructor == Array) {
if (as_Data.length == 0 || as_Data[0] == "")
return ljs_json;
}
ljs_json = '{';
ljs_json += '"Label":"' + as_Label + '",';
ljs_json += '"Data":' + JSON.stringify(as_Data) + ',';
ljs_json += '"Where":' + JSON.stringify(as_Where) + ',';
ljs_json += '"Option":"' + as_Option + '"';
ljs_json += '},';
}
return ljs_json;
} function GenerateJsonStringIfy(as_Label, as_Value, as_Type) {
var ljs_json = "";
if (as_Value !== null && as_Value !== "") {
if (typeof as_Value == "object" && as_Value.constructor == Array) {
if (as_Value.length == 0 || as_Value[0] == "")
return ljs_json;
}
if (as_Label !== null && as_Label !== "") {
var lo_nap = { Label: as_Label, Value: as_Value.toString(), Type: as_Type };
ljs_json += JSON.stringify(lo_nap) + ',';
}
}
return ljs_json;
}

  

Devexpress MVC Gridview 获取到增删改的所有行数据(JSON) 并使用SQL事物保存数据的更多相关文章

  1. MVC无限级分类02,增删改查

    继上一篇"MVC无限级分类01,分层架构,引入缓存,完成领域模型与视图模型的映射",本篇开始MVC无限级分类的增删改查部分,源码在github. 显示和查询 使用datagrid显 ...

  2. MVC与EasyUI结合增删改查

    构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(9)-MVC与EasyUI结合增删改查   在第八讲中,我们已经做到了怎么样分页.这一讲主要讲增删改查.第六讲的 ...

  3. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(9)-MVC与EasyUI结合增删改查

    系列目录 文章于2016-12-17日重写 在第八讲中,我们已经做到了怎么样分页.这一讲主要讲增删改查.第六讲的代码已经给出,里面包含了增删改,大家可以下载下来看下. 这讲主要是,制作漂亮的工具栏,虽 ...

  4. 关于MVC工厂模式的增删改查sql存储过程

    这里MVC中用到了反射,工厂,泛型,接口 在搭建框架的时候,除了MVC的三层以外,还有泛型的接口层和工厂层 下面是dal层调用sql存储过程,增删改查,dal层继承了接口层,实现了接口层里面的方法 1 ...

  5. MVC 入门 自动生成 增删改查所有功能

    MVC现在版本已经是5了   EF现在最新的应该是6.0.2了 开发工具是 Visual Studio2013 数据库是 SQL Server 2012 这些需要.NET Framework4.5 的 ...

  6. Devexpress MVC GridView / CardView (持续更新)

    //获取gridview里面的combo box 显示的文本 //获取某个column在gridview的 index RightGridView.GetColumnByField("Fun ...

  7. Devexpress MVC Gridview

    1. 根据选中的KeyValue 来获取其他field的value // Gridview settings settings.CustomJSProperties = (s, e) => { ...

  8. MVC 中aspx的增删改查

    先看总体结构 LInQ #pragma warning disable 1591 //--------------------------------------------------------- ...

  9. MVC中使用EF增删改查,简单的例子

    //这个是分页数据和总页数类 public class SummaryBase<TModel> { public SummaryBase(); public IList<TModel ...

随机推荐

  1. 交换机安全学习笔记 第六章 IPV4 ARP攻击

    ARP欺骗攻击 常用工具:  dsniff(Linux/windows).ettercap(Linux/windows).cain(仅windows). ARP欺骗攻击的目的是嗅探发往某主机的所有IP ...

  2. CAN 总线数据收发驱动

    目标:使用链表实现 CAN 总线数据的分帧发送和分帧数据的接收,同时将接收到的多帧数据合并成一个完整的数据包. 使用场合:当一个CAN总线网络上有多个端口对同一个端口发送分帧数据,且来自不同端口的分帧 ...

  3. 【转】mysql卸载(windows)

    作者:cxy_Summer 来源:CSDN 原文:https://blog.csdn.net/cxy_Summer/article/details/70142322 版权声明:本文为博主原创文章,转载 ...

  4. numpy-数据格式之 int 与 uint

    概念 整型分为 有符号整型 和 无符号整型,其区别在于 无符号整型 可以存放的正数范围 比 有符号整型 大一倍,因为 有符号整型  将最高位存储符号,而 无符号整型 全部存储数字 # 1 111000 ...

  5. D - 卿学姐与魔法

    卿学姐与魔法 Time Limit: 1200/800MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit Sta ...

  6. 07、poly-A内参和杂交内参(arrayanalysis的问题)

    为了验证杂交的质量,Affymetrix公司加入了两类嵌入探针组: 一.poly-A内参:包括lys.phe.thr.dap 对应的探针组名称为:AFFX-r2-Bs-lys-3_at.AFFX-r2 ...

  7. Centos下安装nc命令工具安装以及使用

    1)netcat(nc)是一个简单而有用的工具,被誉为网络安全界的“瑞士军刀”,不仅可以通过使用TCP或UDP协议的网络连接读写数据,同时还是一个功能强大的网络调试和探测工具,能够建立你需要的几乎所有 ...

  8. ABAP JSON转换

    REPORT ztest_json. DATA: json_ser TYPE REF TO cl_trex_json_serializer, json_des TYPE REF TO zcl_trex ...

  9. k8s+docker+proget 镜像制作

    安装proget 1 首先在k8s上运行proget的数据库配置有个注意点:要根据proget官网要求的sql server排序方式建数据库,不然数据保存的时候会报错 2 proget运行起来后,默认 ...

  10. git上传文件夹报错: ! [rejected] master -> master (fetch first) error: failed to push some refs to 'https://github.com/taminachen/rjxm.git' hint: Updates were rejected because the remote contains work

    使用git上传本地文件夹到远程仓库,使用如下命令:git push -u origin master时报错 原因是在GitHub创建仓库时创建了readme文件,但是本地没有这个文件,造成本地目录与远 ...