首页 > 解决方案 > 无法让数据表编辑器初始化

问题描述

我正在处理一个上传 xlsx 文件的页面,将其解析为对象数组(每一行都是一个对象),然后填充到数据表中。我希望能够在单击另一个按钮并将其发送到数据库之前编辑表中的数据。无法让编辑工作。我已经尝试了很多我在网上找到的初始化编辑器的不同方法,但没有一个对我有用。

如果我摆脱了编辑器代码,一个普通的数据表可以正常工作,但到目前为止我得到了错误:

Cannot read property Editor of undefuned

这是代码以及我如何填充数据表

$(function() {
    let session = '<?=json_encode($_SESSION)?>';
    //console.log(session);

     var editor = new $.fn.dataTabe.Editor({
         table: '#datatable'
     });

    var table = $('#datatable').DataTable();
    table
        .order( [ 3, 'asc' ] ).page.len( 10 )
        .draw();
    });

    let fileIn;
    let resultArray;
    let finalArray = new Array;

    document.getElementById('getFile').addEventListener('click', () => {
        fileIn = document.getElementById('my_file_input').files[0];
        console.log(fileIn);
        parseExcel(fileIn);
        setTimeout(() => {
            resultArray.forEach((arr) => {
                let company = (arr.company) ? arr.company : null;
                let category = (arr.category) ? arr.category : null;
                let pcs_no = (arr.pcs_no) ? arr.pcs_no : null;
                let product_name = (arr.product_name) ? arr.product_name : null;
                let min_range_rate = (arr.min_range_rate) ? arr.min_range_rate : null;
                let max_range_rate = (arr.max_range_rate) ? arr.max_range_rate : null;
                let max_total_rate_per_ha = (arr.max_total_rate_per_ha) ? arr.max_total_rate_per_ha : null;
                let measure_unit = (arr.measure_unit) ? arr.measure_unit : null;
                let range_notes = (arr.range_notes) ? arr.range_notes : null;
                let comment = (arr.comment) ? arr.comment : null;
                let crops;
                let pack_size;
                let chemical;

                if(arr.crops) {
                    if(arr.crops.includes(',')) {
                        crops = arr.crops.split(',');
                    } else {
                        crops = arr.crops;
                    }
                } else {
                    crops = null;
                }

                if(arr.pack_size) {
                    if(arr.pack_size.includes(',')) {
                        pack_size = arr.pack_size.split(',');
                    } else {
                        pack_size = arr.pack_size;
                    }
                } else {
                    pack_size = null;
                }

                if(arr.chemical) {
                    if(arr.chemical.includes(',')) {
                        chemical = arr.chemical.split(',');
                    } else {
                        chemical = arr.chemical;
                    }
                } else {
                    chemical = null;
                }

                let data = {
                    company,
                    category,
                    pcs_no,
                    product_name,
                    min_range_rate,
                    max_range_rate,
                    max_total_rate_per_ha,
                    measure_unit,
                    range_notes,
                    comment,
                    crops,
                    pack_size,
                    chemical
                }
                finalArray.push(data);
            }); 

            finalArray.forEach((arr) => {
                table.row.add([
                    arr.company,
                    arr.category,
                    arr.category,
                    arr.pcs_no,
                    arr.product_name,
                    arr.pack_size,
                    arr.chemical,
                    arr.min_range_rate,
                    arr.max_range_rate,
                    arr.max_total_rate_per_ha,
                    arr.measure_unit,
                    arr.range_notes,
                    arr.crops,
                    (arr.comment) ? arr.comment.trim() : null
                ]).draw(false)
            });
            console.log(finalArray);
        }, 3000);
    });

标签: javascriptdatatable

解决方案


推荐阅读