前台
在layui的数据表格中加入switch开关按钮
{ field: 'IsOpen', title: "权限", width: 200, align: 'center', templet: switchTpl},
绑定按钮 switchTpl 是 tempet 中定义的
<script id="switchTpl" type="text/html">
<input type="checkbox" name="state" value={{d.IsOpen}} lay-skin="switch" lay-text="开启|关闭" pid={{d.PersonId}} lay-filter="state" {{ d.IsOpen == '1' ? 'checked' : '' }} />
</script>
加了这俩之后前台就已经能显示了,其中d.IsOpen 是数据库中的字段 注意 pid 是当前行的id值 这是非常重要的
事件
//switch开关事件
form.on('switch(state)', function (data) {
this.checked ? data.value = 1 : data.value = 0; //更改选中和未选中时,传动后台的值,此时选中传1,未选中传0。
layer.msg('权限:' + (this.checked ? '开启' : '关闭'), {
offset: '6px',
time: 500,
});
var kg = data.value; //将该值传到后端即可使用。(如,直接在ajax中传值)
var id = $(this).attr('pid');//获取当前行的id值,pid是在上面定义的
$.post("/Person/open", { id: id,isopen: kg }, function (data) {
var res = JSON.parse(data);
if (res.code == 0) {
table.reload('idTest', { page: { curr: $(".layui-laypage-em").next().html() } })//删除后刷新table
obj.del(); //删除对应行(tr)的DOM结构,并更新缓存
//删除操作
}
else {
alert("操作失败!");
}
});
});
form报错的要在实例化一下
layui.use('table', function () {
var table = layui.table;//实例化layui 表格
var layer = layui.layer;
var form = layui.form;
$ = layui.$;
mvc后台
public ActionResult open(int id, int isopen)
{
if (id > 0 )
{
XinHua_2021Entities db = new XinHua_2021Entities();
XH_PersonInfo user = db.XH_PersonInfo.Where(d => d.PersonId == id).FirstOrDefault<XH_PersonInfo>();
if (isopen == 1)
{
user.IsOpen = 1;
}
else
{
user.IsOpen = 0;
}
if (db.SaveChanges() > 0)
{
return Json("{\"code\": 0,\"msg\": \"\",\"data\": {\"src\": \"\"}}");
}
else
{
return Json("{\"code\": 1,\"msg\": \"\",\"data\": {\"src\": \"\"}}");
}
}
else
{
return Content("操作失败!");
}
}