有关 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 ...
随机推荐
- Django框架(二十一)--Django rest_framework-频率组件
一.作用 为了控制用户对某个url请求的频率,比如,一分钟以内,只能访问三次 二.自定义频率类 # 写一个频率认证类 class MyThrottle: visit_dic = {} visit_ti ...
- tornado 文件上传
服务端 def post(self, *args, **kwargs): # content_type # filename # body file_data=self.request.files i ...
- vim 自定义设置格式
在centos 6.9 或 7.3 环境下 可以在自己账户的主目录下新建一个.vimrc 的文件,放入一下代码: syntax on "即设置语法检测,当编辑C或者Shell脚本时,关键字会 ...
- hydra使用,实例介绍
hydra 是一个网络帐号破解工具,支持多种协议.其作者是van Hauser,David Maciejak与其共同维护.hydra在所有支持GCC的平台能很好的编译,包括Linux,所有版本的BSD ...
- openstack Train 版本dashaboard 404问题
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明本文链接:https://blog.csdn.net/weixin_28738845/articl ...
- 每天一套题打卡|河南省第九届ACM/ICPC
A 表达式求值 表达式求值:可以用递归求解,也可以用栈模拟,考过多次. 类似题目:NYOJ305,NYOJ35 用栈模拟做法: #include <stdio.h> #include &l ...
- 代码审计-md5()函数
<?php error_reporting(0); $flag = 'flag{test}'; if (isset($_GET['username']) and isset($_GET['pas ...
- Java System.getProperty vs System.getenv
转自:https://www.baeldung.com/java-system-get-property-vs-system-getenv 1. Introduction The package ja ...
- [THUPC2018]弗雷兹的玩具商店(线段树,背包)
最近状态有点颓,刷刷水题找找自信. 首先每次询问就是完全背包.可以 $O(m^2)$. 由于每个物品都可以用无数次,所以对于价格相同的物品,我们只用考虑愉悦度最高的. 直接上线段树.$val[i]$ ...
- Linux性能优化实战学习笔记:第五十讲
一.上节回顾 上一节,我以 ksoftirqd CPU 使用率高的问题为例,带你一起学习了内核线程 CPU 使用率高时的分析方法.先简单回顾一下. 当碰到内核线程的资源使用异常时,很多常用的进程级性能 ...