table无法重载,求解

提问 未结
6 59
Andromeda
Andromeda 2019-3-14
悬赏:20飞吻
版本:layui 2.4.2 浏览器:chrome



表格正常显示,按钮事件正常,就是到了重载这儿不行了,有点头疼,几乎是照着官方的示例来的,使用方法级渲染,求大神帮助,谢谢。
回帖

  • testReload改成你的表格id
    0 回复
  • 你说的重载不行,关键的要看是执行了没有,是执行了没有你要的效果,你说他不行还是说执行报错,这个是有区别的,不过你的问题主要是用错了,你要达到什么目的?通过条件去搜索出来一些数据?where只有在url模式下是有用的,会放到ajax的data里面请求接口,但是你config里面是data模式,静态数据的跟where是八竿子打不着的
    0 回复
  • Andromeda
    2019-3-14
    @岁月小偷 好的好的,执行没有报错,就是闪了一下没有生效。是想实现拿一次后台数据就不再向后台请求就筛选了。
    0 回复
  • @Andromeda 就是说实际已经重载完成了只是没有达到你要的效果,实际你是想在一个前端对一个已经的数据集过滤出新的数据集,这个得在前端自己处理where属于异步接口的,当然你也可以用它来存储目前的搜索条件啥的,但是不会自动就有效,需要自己filter出来一个新的data数组table.reload(tableId, {data: newData})
    0 回复
  • Ryadmin
    6天前
    重载里面的参数
    另外 你在table的参数里还得加上一个 id
    , page: true
    , id: 'testReload'
    , response: {
    statusName: 'code' //规定数据状态的字段名称,默认:code
    , statusCode: 0 //规定成功的状态码,默认:0
    , msgName: 'msg' //规定状态信息的字段名称,默认:msg
    , countName: 'count' //规定数据总数的字段名称,默认:count
    }
    、、、、、、、、、、、、、、、
    table.reload('testReload', {
    page: {
    curr: 1 //重新从第 1 页开始
    }
    , where: {
    key: {
    id: demoReload.val()
    }
    }
    });
    ////////////////////////////
    $('.demoTable .layui-btn').on('click', function () {
    var type = $(this).data('type');
    active[type] ? active[type].call(this) : '';
    });
    加上后面这一句。然后你的页面是不是有个获取加载值的地方。例如input 里面的属性按着 文档要求的写上。包括div
    0 回复
  • Ryadmin
    6天前
    layui.use(['table', 'colorpicker' ],function () {
    var table = layui.table;
    var colorpicker = layui.colorpicker;

    //
    table.render({
    elem: '#test'
    , url: '../../Tools/Mobel_SubList/Mobel_sub.ashx?Type=Product'
    , cols: [[
    { field: 'ID', title: '序号', width: 80, fixed: 'left', sort: true, unresize: true }
    , { field: 'Product_Code', title: '产品代码', width: 100, fixed: 'left', sort: true }
    , { field: 'Item_Code', title: '药品编码', width: 100, fixed: 'left', sort: true }
    , { field: 'Item_Desc', title: '药品名称', width: 100 }
    , { field: 'Item_Spec', title: '规格', width: 100 }
    , { field: 'Unit', title: '单位', width: 100, unresize: false }
    , { field: 'Item_Unit', title: '数量', width: 100 }
    , { field: 'Weight', title: '重量', width: 100 }
    , { field: 'Dosage_Form', title: '生产单位', width: 100 }
    , { field: 'Approval', title: '国药准字', width: 100 }
    ]]
    , page: true
    , id: 'testReload'
    , response: {
    statusName: 'code' //规定数据状态的字段名称,默认:code
    , statusCode: 0 //规定成功的状态码,默认:0
    , msgName: 'msg' //规定状态信息的字段名称,默认:msg
    , countName: 'count' //规定数据总数的字段名称,默认:count
    }
    , parseData: function (res) {
    // debugger; //res 即为原始返回的数据
    return {
    "code": res.code, //解析接口状态
    "msg": res.msg, //解析提示文本
    "count": res.count, //解析数据长度
    "data": res.data //解析数据列表
    };
    }
    , done: function (res, curr, count) {// 表格渲染完成之后的回调
    var that = this.elem.next();
    res.data.forEach(function (item, index) {
    //console.log(item.empName);item表示每列显示的数据
    if (index % 2 === 0) {
    that.find(".layui-table-box tbody tr[data-index='" + index + "']").css("background-color", colorone);
    } else {
    that.find(".layui-table-box tbody tr[data-index='" + index + "']").css("background-color", colortwo);
    }
    });
    }
    });
    //监听行单击事件(单击事件为:rowDouble)
    table.on('row(test)', function (obj) {
    var data1 = obj.data;
    var par = window.parent.document;
    console.log("HospitalMessage—success");
    // var parID = getQueryVariable("id");
    var Im = getQueryVariable("Im");
    var body = $("#" + Im + "", parent.document);
    console.log(Im);
    var serachInputText = body.find('[data-Item="Item"]');
    var Ttem = new Array();
    $.each(serachInputText, function () {
    var input = $(this);
    Ttem.push(input.attr("data-name"));
    });
    console.log(Ttem);
    for (var i = 0; i < Ttem.length; i++) {
    if (body.find('[data-name="' + Ttem[i] + '"]')) {
    body.find('[data-name="' + Ttem[i] + '"]').val(eval("data1." + Ttem[i]));
    }
    }
    var index = parent.layer.getFrameIndex(window.name);
    parent.layer.close(index);
    });
    //重载
    var $ = layui.$, active = {
    reload: function () {
    var demoReload = $('#demoReload');
    //执行重载
    table.reload('testReload', {
    page: {
    curr: 1 //重新从第 1 页开始
    }
    , where: {
    key: {
    id: demoReload.val()
    }
    }
    });
    }
    };
    $('.demoTable .layui-btn').on('click', function () {
    var type = $(this).data('type');
    active[type] ? active[type].call(this) : '';
    });
    });
    0 回复