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 ...
随机推荐
- css样式,媒体查询,垂直居中,js对象
下面是一些截图,有关查询效率,css样式,媒体查询,垂直居中,js基本类型.
- java中的小知识点
1.数据类型的相关知识点 1.1.java内置封装类的转换 java中内置的封装类Byte.Integer.Float.Double和Long都可以转换成double类型的数值:因为这些封装好的类中都 ...
- 你确定 SQL 查询都是以 SELECT 开始的?
很多 SQL 查询都是以 SELECT 开始的. 不过,最近我跟别人解释什么是窗口函数,我在网上搜索"是否可以对窗口函数返回的结果进行过滤"这个问题,得出的结论是"窗口函 ...
- QQ音乐爬虫
#今日目标 **QQ音乐爬虫** 今天要爬取的是QQ音乐任意歌手的所有音乐歌词,因为笔者是周杰伦的忠实粉丝,所以专门写了个爬虫来爬取他的音乐的歌词,因为他的音乐在咪咕音乐可以听,所以便没有去爬取. 好 ...
- Codeforces893F_Subtree Minimum Query
题意 给定一棵树和根,每个点有点权,强制在线询问\(x\)子树里离\(x\)距离不超过\(k\)的最小点权. 分析 权值线段树合并的套路题,dfs,以深度作为下标,点权作为值,对每个点建立一颗权值线段 ...
- 查找元素在list中的位置以及折半查询
问题 查找某个值在list中的位置 解决思路 能够用折半查询的方法解决此问题. 解决(Python) #! /usr/bin/env python #coding:utf-8 #折半查找某个元素在li ...
- C#下载图片,用户选择保存路径
Html代码 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></ti ...
- Java的GUI框架如何选择? Swing、SWT、AWT、SwingX、JGoodies、JavaFX、Apache Pivot、BeautyEye框架(美观)?
AWT 是swing的基础,运行良好,但缺少高级组件.如果您打算创建丰富的应用程序,那么AWT可能不是最好的方法.但是对于不需要丰富用户界面的较小gui应用程序来说.这可能非常适合,因为它是一个久经考 ...
- Json解析报错: Error is : Unescaped control character...的解决方法
在利用json-framework来实现json解析的过程时,会出现"-JSONValue Failed. Error is : Unescaped control character&qu ...
- Delphi 布尔型数据