弹框页面添加数据,后置table页如何刷新?

提问 已结 11 713
汪杰
汪杰 2020-1-14
悬赏:100飞吻
版本:layui 2.5.5 浏览器:Chrome
页面打开,初始化一个table
table.render({
elem: '#table'
, url: '/api/Studnet/List'
, method: 'post'
, where: { id:1 }
, contentType: 'application/json'
, limit: 10
, parseData: function (res) {
if (res.code === 200) {
return {
"code": res.code,
"msg": res.message,
"count": res.data.totalCount,
"data": res.data.list
};
}
}
, cols: [[
{ field: 'id', title: '主键', width: 120 }
, { field: 'name', title: '姓名', width: 280 }
, { field: 'class', title: '班级', width: 280}
, { field: 'creater', title: '创建人', width: 120 }
, { field: 'createTime', title: ''创建时间', width: 180 }
]]
, page: true
});
点击页面按钮,弹框代码
form.on('submit(student_form_add_filter)', function (data) {
loadHtmlContent('html/student/add.html', function (data) {
layuiLayer(1, data, '添加学生', '620px', '500px');
});
return false;
});
loadHtmlContent是封装的一个方法,就是读取HTML页面,layer弹框打开。弹框页面添加逻辑简简单单,一个ajax
form.on('submit(add_form_submit_filter)', function (data) {
var dt = { "name": name, "class": class};
$.ajax({
url: "/api/Student/Add",
type: "POST",
data: JSON.stringify(dt),
contentType: "application/json",
success: function (d) {
layuiLayerClose();
if (d.code === 200) {
layuiLayerCloseAll('page');

//这里如何刷新后置table页面

}
}
});
return false;
});
添加成功后,如何刷新后置页面?
回帖
  • IDyun
    2020-1-14
    //父页面重载表格
    parent.layui.table.reload('table')
    //父页面查询按钮
    $('#btn_query', window.parent.document).click();
    0 回复
  • onlyyou123
    2020-1-14
    $("#student_form_add_filter").click();
    放在那个if里面就可以刷新了
    1 回复
  • 修改成功就关闭弹窗,调用父页面的刷新功能
    0 回复
  • IDyun
    2020-1-14
    如果你有表格查询按钮,直接触发查询按钮就可以,如果没有就直接重载表格.
    //这里如何刷新后置table页面
    table.reload('table')
    https://www.layui.com/doc/modules/table.html#reload
    0 回复
  • onlyyou123
    2020-1-14
    直接去把你进页面获取table数据的方法在执行一遍就可以了
    0 回复
  • 汪杰
    2020-1-14
    @白手起家想发财 如何调父页面的刷新功能?父页面的获取table数据写在
    layui.use(['form', 'table'], function () {
    //获取table数据
    ....
    });
    也就是一个封闭的环境,调不到。
    0 回复
  • 汪杰
    2020-1-14
    @IDyun 你看我的代码片段,因为我的添加功能在新的html页面里面,子页面里面添加成功后,没有table这个对象,table这个对象在父页面的闭包里面,也就是
    layui.use(['form', 'table'], function () {
    var table = layui.table;

    });
    子页面没有table对象,如何reload?
    0 回复
  • @汪杰 子页面没有,但是可以调用父页面的方法,比如parent.父页面方法
    0 回复
  • 汪杰
    2020-1-14
    @白手起家想发财 父页面的方法写在layui.use里面,parent.调用不到。控制台报错:parent.getList() not a function
    0 回复
  • 汪杰
    2020-1-14
    @IDyun 第二种方法等同于:$('#btn_query').click(); 感觉没什么区别?都可以达到效果;
    第一个方法报错了:Layui hint: The ID option was not found in the table instance 你看看对象里面有没有什么问题?
    console.log(parent.layui.table);


    更倾向于第一个方法,但是没达到效果。
    0 回复