这是页面的代码
@{
ViewData["Title"] = "区域列表";
Layout = "~/Views/Shared/_LayoutNone.cshtml";
}
<div class="layui-fluid">
<div class="layui-card">
<div class="layui-card-body">
<div style="padding-bottom: 10px;">
<button class="layui-btn layuiadmin-btn-list" data-type="add"><i class="layui-icon"></i>新增一级区域</button>
<span style="color: red"> 提示:此功能仅供开发人员操作使用,请谨慎操作!</span>
</div>
<table id="area_tree_data" lay-filter="area_tree_data"></table>
<script type="text/html" id="table-content-list">
<a class="layui-btn layui-btn-xs" lay-event="add"><i class="layui-icon layui-icon-add-1"></i>新增</a>
<a class="layui-btn layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a>
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>
</script>
</div>
</div>
</div>
<script src="~/layuiadmin/layui/layui.js"></script>
<script>
layui.config({
base: '/layuiadmin/' //静态资源所在路径
}).extend({
index: '/lib/index' //主入口模块
}).use(['index', 'treeTable'], function () {
var $ = layui.$
, table = layui.table
, form = layui.form
, admin = layui.admin;
var treeTable = layui.treeTable;
// 渲染表格
treeTable.render({
elem: '#area_tree_data',
toolbar: false,
tree: {
iconIndex: 1
},
cols: [
[
{
field: "area_id",
title: "ID",
width: 100,
},
{
field: "area_name",
title: "区域名称",
minWidth: 200,
},
{
field: "short_name",
title: "简称",
width: 100,
},
{
field: "area_pinyin",
title: "拼音",
width: 120,
},
{
field: "area_lng",
title: "经度",
width: 120,
},
{
field: "area_lat",
title: "纬度",
width: 120,
},
{
title: "操作",
width: 280,
align: "center",
fixed: "right",
toolbar: "#table-content-list"
}]
],
reqData: function (data, callback) {
//读取数据加载loading..
loading = layer.load(2, {
shade: [0.2, '#000']
});
admin.req({
url: '/area/list'
, data: { parent_id: data ? data.area_id : "1" }
, done: function (res) {
layer.close(loading);
//console.log('proinvce data=' + JSON.stringify(res.data));
callback(res.data);
}
});
},
style: 'margin-top:0;'
});
//右侧操作事件
treeTable.on("tool(area_tree_data)", function (t) {
var layEvent = t.event; //获得 lay-event 对应的值(也可以是表头的 event 参数对应的值)
console.log("layEvent="+layEvent)
var tr = t.tr; //获得当前行 tr 的DOM对象
console.log("tr=" + JSON.stringify(tr))
var area_id = t.data.area_id;
console.log('id=' + area_id);
if ("del" === t.event) {
layer.confirm("确定删除此区域?", function (e) {
admin.req({
headers: {
'RequestVerificationToken': csrfToken
},
method: 'POST',
url: '/area/delete/' + area_id
, done: function (res) {
console.log(res.msg);
t.del();
layer.close(e);
}
});
});
}
else if ("add" === t.event) {
var level_type = t.data.level_type;
level_type = parseInt(level_type) + 1;
layer.open({
type: 2,
title: "新增区域",
content: "/area/create?level_type=" + level_type+"&parent_id=" + area_id,
maxmin: !0,
area: ["550px", "550px"],
btn: ["确定", "取消"],
yes: function (e, i) {
a = i.find("iframe").contents().find("#layuiadmin-app-form-submit");
a.trigger("click");
}
})
}
else if ("edit" === t.event) {
layer.open({
type: 2,
title: "编辑区域",
content: "/area/edit?parent_id=" + area_id,
maxmin: !0,
area: ["550px", "550px"],
btn: ["确定", "取消"],
yes: function (e, i) {
a = i.find("iframe").contents().find("#layuiadmin-app-form-edit");
a.trigger("click");
}
})
}
});
var $ = layui.$, active = {
add: function () {
layer.open({
type: 2
, title: '添加一级区域'
, content: '/area/create?level_type=1&parent_id=100000'
, maxmin: true
, area: ['550px', '550px']
, btn: ['确定', '取消']
, yes: function (index, layero) {
//点击确认触发 iframe 内容中的按钮提交
var submit = layero.find('iframe').contents().find("#layuiadmin-app-form-submit");
submit.click();
}
});
},
refresh: function () {
table.reload('LAY-app-content-list');
}
};
$('.layui-btn.layuiadmin-btn-list').on('click', function () {
var type = $(this).data('type');
active[type] ? active[type].call(this) : '';
});
});
</script>
这个是控制器的代码
public async Task<IActionResult> List(int parent_id, string area_name)
{
try
{
if (parent_id == 1)
{
var result = from item in _context.Set<Area>().Where(t => t.level_type.Contains("1"))
select new
{
item.area_id,
item.area_name,
item.parent_id,
item.short_name,
item.level_type,
item.city_code,
item.zip_code,
item.merger_name,
item.area_lng,
item.area_lat,
item.area_pinyin,
haveChild = true,
};
var lCount = result.LongCount();
if (!string.IsNullOrEmpty(area_name))
{
result = result.Where(n => n.area_name.Contains(area_name.Trim()));
}
var list = await result.OrderBy(n => n.area_id).ToListAsync();
AddLogs(7, "查询LINQ=" + result.Expression.ToString() + ",DATA=" + list.ToJson());
return Json(new { code = 0, msg = "success", data = list, count = lCount });
}
else
{
var result = from item in _context.Set<Area>().Where(t => t.parent_id == parent_id)
select new
{
item.area_id,
item.area_name,
item.parent_id,
item.short_name,
item.level_type,
item.city_code,
item.zip_code,
item.merger_name,
item.area_lng,
item.area_lat,
item.area_pinyin,
haveChild = _context.ypk_area.Any(t => t.parent_id == item.area_id),
};
var lCount = result.LongCount();
if (!string.IsNullOrEmpty(area_name))
{
result = result.Where(n => n.area_name.Contains(area_name.Trim()));
}
var list = await result.OrderBy(n => n.area_id).ToListAsync();
AddLogs(7, "查询LINQ=" + result.Expression.ToString() + ",DATA=" + list.ToJson());
return Json(new { code = 0, msg = "success", data = list, count = lCount });
}
}
catch (Exception ex)
{
log.Error(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + " -> GetDataByPage", ex);
return Json(new { code = 1, msg = ex.Message });
}
}
这个是展示页面
现在是新增完后重载表格,但是我想让它新增完后不要刷新整张表格,只单独刷新刚刚新增的数据就行了。