table select 问题

提问 已结 18 362
Z_zero
Z_zero 2019-7-9
悬赏:20飞吻
版本:layui 2.x 浏览器:谷歌 75
table select,当select选中一行时,再添加一行时他会刷新上一条select的选中,会恢复无选中状态。想问一下让他保持选中的方法。

添加行时刷新了上一条select

还有就是在开启分页的时候,当第一页是显示五条数据,我添加只显示六条数据,不知道为什么。。。。。
第六条数据是显示在分页的第二页是吧,切换第二页,然后再添加一行,(只要在第二页添加数据他就会清空)他就会把table清空。。。。。。。。嗯。。

回帖
  • @Z_zero https://blog.csdn.net/weixin_42047392/article/details/89575621 要不你去看下我的博客吧,我那个是完整的
    0 回复
  • lll_lll
    2019-7-9
    可以贴一下你的代码吗
    0 回复
  •  tables = table.render({
    elem: '#demo'
    , width: 500
    , cols: [[ //标题栏
    { type: 'checkbox', fixed: 'left', hide: true }
    , { fixed: 'left', toolbar: '#bar', title: '操作', width: 180, align: 'center' }
    , { field: 'LocationID', title: '仓位编码', width: 158, templet: '#selectDictName', align: "center" }
    , { field: 'InventoryQuantity', title: '拆分数量', edit: 'text', width: 158, align: "center" }
    ]]
    //这里就是一开始渲染就添加一个空的一行数据,或者添加一下数据也可以
    , data: [{ "LocationNumber": "", "InventoryQuantity": "", "LocationID":0 }]
    , done: function (res, curr, count) {
    //下拉框绑定
    $.ajax({
    type: "post",
    url: "",
    dataType: "json",
    async: false,
    success: function (data) {
    for (k in data) {
    $("select[name='dictName']").append('<option value="' + data[k].id + '">' + data[k].text + '</option>');
    }
    }
    });
    //根据已有的值回填下拉框
    layui.each($("select[name='dictName']"), function (index, item) {
    var elem = $(item);
    elem.val(elem.data('value'));
    });
    form.render('select');
    }

    });
    0 回复
  • Z_zero
    2019-7-9
    @ll_lll //修理项目
    tabRepairItem = layuiTable.render({
    elem: "#tabRepairItem",
    //url: "SelecttabRepairItem",
    //limit: 100,

    toolbar: '#toolbarDemo',
    defaultToolbar: [],
    cols: [[
    { type: 'checkbox', fixed: 'left' },
    { type: "numbers", title: "序号", totalRowText: "合计" },
    { field: "RepairItemID", title: "修理项目ID", hide: true },
    {
    field: "RepairItemName", width: 130, title: "修理项目", templet: function () {
    return RepairItemName;
    }
    },
    { field: "ServiceCraftName", width: 120, title: "维修工艺" },
    { field: "RepairCost", width: 120, title: "修理费", totalRow: true, },
    { field: "Discount", width: 120, title: "折扣" },
    { field: "ReceiptsSum", width: 120, title: "实收金额", totalRow: true },
    {
    field: "ServiceNatureID", width: 120, title: "维修性质", templet: function () {
    return ServiceNature;
    }
    },
    { field: "Remark", title: "备注" },
    { field: "", width: 160, title: "工具条", toolbar: '#barDemo' },
    ]],
    page: {
    limit: 10,
    limits: [5,10,15,20]
    },
    totalRow: true,
    data: [{
    "RepairItemID": "",
    "RepairItemName": "",
    "ServiceCraftID": "",
    "RepairCost": "",
    "Discount": "",
    "ReceiptsSum": "",
    }],
    done: function (res, curr, count) {
    tabledata = res.data;
    $('.layui-form-select').find('input').unbind("blur");
    $('tr').each(function (e) {
    var $cr = $(this);
    var dataindex = $cr.attr("data-index");
    $.each(tabledata, function (index, value) {
    if (value.LAY_TABLE_INDEX == dataindex) {
    $cr.find('input').val(value.ServiceNatureID);
    }
    });
    });
    //总计行金额统计
    var key = 'RepairCost' //列id
    var e = $("#tabRepairItem").next().find('.layui-table-total').find('td[data-field="' + key + '"] div').text();
    $("#TotalMoney").val(e)
    }
    })
    0 回复
  • Z_zero
    2019-7-9
    @ll_lll //修理项目==>>添加行
    layuiTable.on('toolbar(tabRepairItem)', function (obj) {
    var i = 1;
    if (obj.event === 'add') {
    tabledata.push({
    "ReceiptsSum":""
    })
    layuiTable.reload('tabRepairItem', {
    data: tabledata
    });
    };
    });
    那个数据是测试总计行
    0 回复
  • lll_lll
    2019-7-9
    @Z_zero 你的新增行,代码呢
    0 回复
  • Z_zero
    2019-7-9
    @ll_lll 监听工具条,添加(修理项目==>>添加行)
    还是说新增行的数据?
    0 回复
  • lll_lll
    2019-7-9
    @Z_zero 你这是纯前端编写的 添加行吗
    0 回复
  • Z_zero
    2019-7-9
    是吧
     function SelecttabRepairItem() {
    var str = "<select lay-filter='RepairItem'>";
    $.ajax({
    url: 'SelecttabRepairItem',
    type: 'post',
    async: false,
    success: function (data) {
    for (k in data) {
    str += "<option value=" + data[k].id + ">" + data[k].text + "</option>";
    }
    str += "</select>";
    RepairItemName = str
    }
    });
    return str;
    }

    拼接,自定义列输出
    0 回复
  • Z_zero
    2019-7-9
    @肥到模糊 啊哈,还是刷新了上一条
    0 回复