有关 Table 获取Json 的解决方案
写在前面
在项目的开发过程中,我们使用最多的是表单的序列化。而有关以Table的序列化成Json的方法不太常见。
在做功能的时候发现,没有提交如何把Table序列化成Json的解决方案。以下,是个人对Table序列化的解决方法。
希望能给遇到同样问题的”童鞋“提供一点思路。
具体操作步骤
前端写法:
<fieldset class="layui-elem-field" style="width: 99%;margin: 10px auto;border: 1px solid #009688;border-radius:5px">
<legend>配置信息</legend>
<div class="layui-field-box">
<div class="layui-form">
<div class="layui-btn-group">
<button class="layui-btn" id="bntAddRow"><i class="layui-icon"></i>增行</button>
<button class="layui-btn layui-btn-danger" id="btnDelRow"><i class="layui-icon"></i>删行</button>
</div>
<div style="width:99%;margin:0 auto">
<table class="layui-table">
<thead>
<tr>
<th><input type="checkbox" lay-filter="allChoose" /></th>
<th>英文字段</th>
<th>中文字段</th>
<th>表名</th>
<th>表别名</th>
<th>是否显示</th>
<th>是否链接</th>
<th>排序</th>
<th>点击主键</th>
<th>是否省略</th>
<th>省略字段</th>
<th>字段表名</th>
<th>界面绑定id</th>
<th>选择器</th>
<th>文本类型</th>
<th>查询类型</th>
<th>权限类型</th>
</tr>
</thead>
<tbody id="bind_List"></tbody>
</table>
</div>
<div class="layui-form" style="text-align: center;">
<button class="layui-btn" id="btnSave">保存</button>
<button class="layui-btn layui-btn-primary" id="btnclose">取消</button>
</div>
</div>
</div>
</fieldset>
//引用Jquery
$(function(){
var Json = SerializeTable("bind_List");
$.post("" + _RequestUrl + ".ashx", { act: "SavePage", Json: Json, opuser: _opuser }, function (msg) {
if (msg > 0) {
parent.layer.msg("保存成功", { icon: 1 });
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
parent.layer.close(index); //再执行关闭
}
else { layer.msg("保存失败", { icon: 2 }); return; }
});
});
//BindDiv 为绑定的Id
function SerializeTable(BindDiv) {
var tb_Json = "[";
//首先,循环行
$("#" + BindDiv + " tr").each(function (i, rows) {
tb_Json += "{";
//其次,循环每一行的列
$.each(rows.cells, function (i, columns) {
//这里去除input标签类型是 checkbox
if (i > 0) {
//判断name值不能位空
if ($(columns).children().attr("name") == "" && $(columns).children().attr("name") == undefined) { }
else { tb_Json += "\"" + $(columns).children().attr("name") + "\":\"" + $(columns).children().val() + "\","; }
}
});
//去除最后一位逗号
tb_Json = tb_Json.substring(0, tb_Json.length - 1);
tb_Json += '},';
});
tb_Json = tb_Json.substring(0, tb_Json.length - 1);
tb_Json += "]";
return tb_Json;
}
后台接收
public static int SavePower(string Json, string Powerid, string opuser)
{
int result = 0;
using (var conn = ConnectionFactory.MySqlCon())
{
string sql = "";
List<sys_menurolefunc> mrf;
mrf = JsonConvert.DeserializeObject<List<sys_menurolefunc>>(Json);
List<sys_menurolefunc> lstmrf = new List<sys_menurolefunc> { };
//查询是否存在
string query = "select count(*) from sys_menurolefunc where role_id=?ids";
DynamicParameters pr = new DynamicParameters();
pr.Add("?ids", Powerid);
int isHave = Convert.ToInt32(conn.ExecuteScalar(query, pr));
if (isHave > 0)
{
string sqldel = "delete from sys_menurolefunc where role_id=?role_ids";
DynamicParameters prs = new DynamicParameters();
prs.Add("?role_ids", Powerid);
int isHaves = conn.Execute(sqldel, prs);
DalCommon.LogsInfo(opuser, "操作日志", "删除权限", "操作表:sys_menurolefunc;删除角色:" + Powerid);//日志记录
}
foreach (var item in mrf)
{
sys_menurolefunc smrf = new sys_menurolefunc();
smrf.menu_id = item.menu_id;
smrf.func_id = item.func_id;
smrf.role_id = item.role_id;
lstmrf.Add(smrf);
}
using (var trans = conn.BeginTransaction())
{
try
{
sql = "insert into sys_menurolefunc(menu_id,func_id,role_id)";
sql += "values (?menu_id,?func_id,?role_id)";
int count = conn.Execute(sql, lstmrf);
trans.Commit();
result = 1;
DalCommon.LogsInfo(opuser, "操作日志", "分配权限", "操作表:sys_menurolefunc;");//日志记录
}
catch (Exception e)
{
/*回滚事务*/
trans.Rollback();
result = 0;
string error = e.Message;
DalCommon.LogsInfo(opuser, "系统日志", "错误日志", "错误:" + error);//日志记录
throw;
}
}
}
return result;
}
有关 Table 获取Json 的解决方案的更多相关文章
- 获取json数据
通过异步获取json来展示数据表格,性能提高不少.实例如下: 前台: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999 ...
- Android Volley获取json格式的数据
为了让Android能够快速地访问网络和解析通用的数据格式Google专门推出了Volley库,用于Android系统的网络传输.volley库可以方便地获取远程服务器的图片.字符串.json对象和j ...
- jquery通过ajax方法获取json数据不执行success
1.jquery通过ajax方法获取json数据不执行success回调 问题描述:jquery通过ajax方法获取json数据不执行success回调方法 问题原因:json格式存在问题或不符合标准 ...
- Jquery 模板插件 jquery.tmpl.js 的使用方法(1):基本语法,绑定,each循环,ajax获取json数据
jquery.tmpl.js 是一个模板js ,主要有2个方法 (1):$.template()方法,将一段script或者是Html编译为模板,例如 $.template('myTemplate' ...
- jquery通过ajax方法获取json数据不执行success回调
问题描述:jquery通过ajax方法获取json数据不执行success回调方法 问题原因:json格式存在问题或不符合标准写法,导致总是执行error回调方法 解决方案:使json格式务必符合下述 ...
- AngularJS学习笔记(3)——通过Ajax获取JSON数据
通过Ajax获取JSON数据 以我之前写的与用户交互的动态清单列表为例,使用JSON前todo.html代码如下: <!DOCTYPE html> <html ng-app=&quo ...
- (六)Net Core项目使用Controller之一 c# log4net 不输出日志 .NET Standard库引用导致的FileNotFoundException探究 获取json串里的某个属性值 common.js 如何调用common.js js 筛选数据 Join 具体用法
(六)Net Core项目使用Controller之一 一.简介 1.当前最流行的开发模式是前后端分离,Controller作为后端的核心输出,是开发人员使用最多的技术点. 2.个人所在的团队已经选择 ...
- jQuery中使用Ajax获取JSON格式数据示例代码
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.JSONM文件中包含了关于“名称”和“值”的信息.有时候我们需要读取JSON格式的数据文件,在jQuery中 ...
- Dapper操作MySQL数据库获取JSON数据中文乱码
前言 在项目中利用Dapper将JSON数据存储到MySQL数据库,结果发现JSON数据中的中文乱码,特此记录,希望对存储JSON的童鞋能有所帮助,文中若有错误之处,还望批评指正. Dapper获取J ...
随机推荐
- springboot访问服务器本地静态文件的方法
一.继承WebMvcConfigurerAdapter,重写addResourceHandlers,在registry里面配置访问路径和映射到的服务器本地路径. import org.springfr ...
- testlink 1.9.19安装
环境平台: 系统:Centos 7.6 数据库:mysql 5.7 PHP版本:PHP 5.6 testlink版本:testlink- 链接:https://pan.baidu.com/s/10Pr ...
- Java结构讲解
Java结构有顺序结构.选择结构和循环结构. 顺序结构: 是Java的基本结构,除非特别说明,否则按顺序一句一句执行:也是最简单的结构:它是任何一个算法都离不开的一种基本算法结构. 选择结构: 1.i ...
- LOJ 546: 「LibreOJ β Round #7」网格图
题目传送门:LOJ #546. 题意简述: 题目说的很清楚了. 题解: 将不包含起点或障碍物的连续的行或列缩成一行或一列,不会影响答案. 处理过后,新的网格图的行数和列数最多为 \(2k + 3\). ...
- SQLAlchemy(1)
介绍 SQLAlchemy是一个基于Python实现的ORM框架.该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使用数据API执行SQL并获取 ...
- c# 第11节 运算符大全
本节内容: 1:数学运算符 2:赋值运算符 3:关系运算符 4:布尔运算符 5:位运算符 6:其他运算符 1:数学运算符 2:赋值运算符 3:关系运算符 4:布尔运算符 5:位运算符 & 运算 ...
- 201777010217-金云馨《面向对象程序设计Java》第四周总结学习
2019面向对象程序设计(Java)第4周学习指导及要求 项目 内容 这个作业属于哪个课程 <任课教师博客主页链接>https://www.cnblogs.com/nwnu-daizh/ ...
- nginx源码安装与使用
[root@localhost ~]# yum -y install pcre-devel zlib-devel openssl openssl-devel gcc* [root@localhost ...
- JAVA并发-Executor
结构 类继承图: 上面的各个接口/类的关系和作用: Executor 执行器接口,也是最顶层的抽象核心接口, 分离了任务和任务的执行. ExecutorService 在Executor的基础上提供了 ...
- tornado内置接口调用顺序initialize\prepare...
一. initialize方法 首先, 该方法是框架预留的一个初始化时加载自定义内容的钩子, 其会在http请求方法之前调用 二. prepare方法 预处理方法, 在执行对应的请求方法之前调用. h ...