//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. 暴力破解-DVWA_1.9-笔记

     穷举法  通过社工尽可能的缩小密码字典的范围   所用到的工具: Firefox浏览器及其插件Proxy Switcher, OWASP ZAP代理抓包工具. OWASP ZAP  代理抓包工具 h ...

  2. C语言作业09

    问题 答案 这个作业属于那个课程 C语言程序设计 这个作业要求在哪里 https://i.cnblogs.com/EditPosts.aspx?opt=1 我在这个课程的目标是 在学好C语言编程的基础 ...

  3. 开启sentry权限控制hue

    参考: cloudera官方授权:包括webui, ldap,sentry https://www.cloudera.com/documentation/enterprise/6/6.2/topics ...

  4. 面试题 | 数据库笔试题集合·之·SQL语句(2)

    第2章 SQL 语句 2.1 选择2.1.1 DELETE FROM S WHERE 年龄>60 语句的功能是( A ) A.从 S 表中彻底删除年龄大于 60 岁的记录B.S 表中年龄大于 6 ...

  5. 初步学习jquery学习笔记(一)

    什么是jquery? Jquery是javascript的一个函数库包含以下功能: html元素选取 html元素的操作 css操作 html事件的函数 javacript的特效 html的遍历和修改 ...

  6. Qt3D 设置窗口背景颜色和图案

    目录 设置窗口的颜色 复杂背景的设置 最近在用 Qt3D 做三维显示,需要设置窗口Qt3DWindow背景的颜色, 查了一些资料,做一些整理,备查. 设置窗口的颜色 如果只是最简单的需求设置某一种颜色 ...

  7. centos7 设置内核启动顺序

    1.查看设备上安装了几个内核 cat /boot/grub2/grub.cfg |grep menuentry 2.查看当前内核 grub2-editenv list saved_entry=Cent ...

  8. luogu P3210 [HNOI2010]取石头游戏

    传送门 不会结论做个鬼系列 题意其实是在头尾(最多)两个栈以及中间一些双端队列依次取数,然后每个人都要最大化自己的价值 有一个结论,如果一段序列中,出现了三个相邻位置\(A,B,C\),满足\(A\l ...

  9. div悬浮在屏幕的中间及点击按钮关闭弹出框

    #fd { position: fixed; z-index: 999; width: 109px; height: 323px; top: 71%; right: 1%; margin: -50px ...

  10. python cv2展示网络图片、图片编解码、及与base64转换

    从网络读取图像数据并展示 需要使用cv2.imdecode()函数,从指定的内存缓存中读取数据,并把数据转换(解码)成图像格式:主要用于从网络传输数据中恢复出图像. # -*- coding: utf ...