Devexpress MVC Gridview 获取到增删改的所有行数据(JSON) 并使用SQL事物保存数据
//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事物保存数据的更多相关文章
- MVC无限级分类02,增删改查
继上一篇"MVC无限级分类01,分层架构,引入缓存,完成领域模型与视图模型的映射",本篇开始MVC无限级分类的增删改查部分,源码在github. 显示和查询 使用datagrid显 ...
- MVC与EasyUI结合增删改查
构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(9)-MVC与EasyUI结合增删改查 在第八讲中,我们已经做到了怎么样分页.这一讲主要讲增删改查.第六讲的 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(9)-MVC与EasyUI结合增删改查
系列目录 文章于2016-12-17日重写 在第八讲中,我们已经做到了怎么样分页.这一讲主要讲增删改查.第六讲的代码已经给出,里面包含了增删改,大家可以下载下来看下. 这讲主要是,制作漂亮的工具栏,虽 ...
- 关于MVC工厂模式的增删改查sql存储过程
这里MVC中用到了反射,工厂,泛型,接口 在搭建框架的时候,除了MVC的三层以外,还有泛型的接口层和工厂层 下面是dal层调用sql存储过程,增删改查,dal层继承了接口层,实现了接口层里面的方法 1 ...
- MVC 入门 自动生成 增删改查所有功能
MVC现在版本已经是5了 EF现在最新的应该是6.0.2了 开发工具是 Visual Studio2013 数据库是 SQL Server 2012 这些需要.NET Framework4.5 的 ...
- Devexpress MVC GridView / CardView (持续更新)
//获取gridview里面的combo box 显示的文本 //获取某个column在gridview的 index RightGridView.GetColumnByField("Fun ...
- Devexpress MVC Gridview
1. 根据选中的KeyValue 来获取其他field的value // Gridview settings settings.CustomJSProperties = (s, e) => { ...
- MVC 中aspx的增删改查
先看总体结构 LInQ #pragma warning disable 1591 //--------------------------------------------------------- ...
- MVC中使用EF增删改查,简单的例子
//这个是分页数据和总页数类 public class SummaryBase<TModel> { public SummaryBase(); public IList<TModel ...
随机推荐
- 【VS开发】【智能语音处理】DTW算法(语音识别)
DTW主要是应用在孤立词识别的算法,用来识别一些特定的指令比较好用,这个算法是基于DP(动态规划)的算法基础上发展而来的.这里介绍语音识别就先介绍下语音识别的框架,首先我们要有一个比对的模版声音,然后 ...
- CSS:文字水平居中的写法
<view class='kk'> 水平垂直居中文字 </view> .kk{ border: 1px solid #000000; width: 200px; height: ...
- [ASP.NET] 数据绑定以及Container.DataItem的具体分析 [转]
灵活的运用数据绑定操作 绑定到简单属性:<%#UserName%> 绑定到集合:<asp:ListBox id="ListBox1" ...
- Luogu P1948 [USACO08JAN]Telephone Lines
题目 两眼题 二分一个\(lim\),然后跑最短路(边权\(\le lim\)的边长度为\(0\),\(>lim\)的长度为\(1\)),然后判断\(dis_{1,n}\le k\). #inc ...
- 用Python制作动态二维码
参考来源链接:https://mp.weixin.qq.com/s/p-ptQZD6_bjUhmU822OPww 今天在最大的同性交友社区GitHub上发现了一个比较有意思的项目,无论你是什么操作系统 ...
- 在linux下和Mac下如何实现快捷方式连接SSH远程服务器
其实特别简单 在本地命令执行目录/usr/local/bin 下新建一个shell脚本 比如 #vim ssh1 写入要执行的内容连接SSH #!/usr/bin/expect -f set user ...
- MD5算法+盐Salt
1.MD算法的基的概念 MD5算法是典型的消息摘要算法,其前身有MD2.MD3和MD4算法,它由MD4.MD3和MD2算法改进而来.不论是哪一种MD算法,它们都需 要获得一个随机长度的信息并产生 ...
- vim学习(一)之简介、安装、配置
vim简介 Vim是从 vi 发展出来的一个文本编辑器,是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面. 简单的来说, vi 是老式的文字处理器,不过功能已经很齐全了,但是还是 ...
- uni-app导航栏配置
uni-app写app的内容会与沉浸栏重合在一起,写好好多,都是有点问题的,这次终于找到解决的方法了,与大家分享一下 最简单的解决方式就是配置mainfest.json来关闭沉浸式.即通过打开应用的m ...
- icmp, IPPROTO_ICMP - Linux IPv4 ICMP 核心模块.
DESCRIPTION 描述 本网络核心协议模块实现了基于 RFC792 协议中定义的<互联网控制报文协议>.它针对网络主机间通讯出错的情况作出回应并给出诊断信息.用户不能直接使用本模块. ...