Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript datatables treegrid未按预期工作_Javascript_Jquery_Datatable_Treegrid - Fatal编程技术网

Javascript datatables treegrid未按预期工作

Javascript datatables treegrid未按预期工作,javascript,jquery,datatable,treegrid,Javascript,Jquery,Datatable,Treegrid,我正在使用datatable插件制作树形网格,但它不适用于子数据 变量数据集=[ { 名称:Test1, 儿童:[ { 名称:试验11, } ] }, { 名称:Test2, } ]; 变量列=[ { 标题:, 目标:0, className:“treegrid控件”, 数据:功能项{ 如果项目1.children{ 返回“+”; } 回来 } }, { 标题:“姓名”, 目标:1, 数据:功能项、键{ 返回item.name; } }, ]; $'example'.DataTable{ “选

我正在使用datatable插件制作树形网格,但它不适用于子数据

变量数据集=[ { 名称:Test1, 儿童:[ { 名称:试验11, } ] }, { 名称:Test2, } ]; 变量列=[ { 标题:, 目标:0, className:“treegrid控件”, 数据:功能项{ 如果项目1.children{ 返回“+”; } 回来 } }, { 标题:“姓名”, 目标:1, 数据:功能项、键{ 返回item.name; } }, ]; $'example'.DataTable{ “选择”:{ '样式':'多', “选择器”:“td:非:第一个孩子” }, “列”:列, “数据”:数据集, “树蛙”:{ “左”:10, “expandIcon”:“+”, “collapseIcon”:“-” } };
我试过你的代码,做了一点小改动就可以正常工作了。此外,我的附带库与您的略有不同,但我认为这不是原因

<script src="jquery-3.3.1.min.js" type="text/javascript"></script>
<script src="dataTables.js" type="text/javascript"></script>
<script src="dataTables.treeGrid.js" type="text/javascript"></script>
包容的顺序至关重要。如果在datatables之前包含treeGrid,那么它将无法正常工作,而且首先必须包含jquery,这是您首先正确完成的。当我在dataTables之前包含treeGrid时,子项不会扩展,因此这可能就是您的解决方案

致以最良好的祝愿,
Chris

TreeGrid v1.1.0目前不支持最新版本的DataTables v1.10.19。它支持v1.10.13

但是我在TreeGrid.js上做了一个修复,这样我就可以正常运行它了。在代码中找到下面的事件处理程序,并按说明更改行

// Expand TreeGrid
        dataTable.on('click', 'td.treegrid-control', function (e) {
            if (!$(this).html()) {
                return;
            }
            var tr = $(this).closest('tr[role="row"]');

            // record selected indexes
            var selectedIndexes = [];
            select && (selectedIndexes = dataTable.rows({selected:true}).indexes().toArray());
            var tr = $(this).closest('tr[role="row"]'); //ADD THIS LINE
            var row = dataTable.row(tr); //CHANGE THIS LINE FROM var row = dataTable.row(this); //"this" selects the cell, not the row!!!
            var index = row.index();
            var data = row.data();

嗨@Niklesh,我面临着同样的问题。价值从未显现。你是如何解决这个问题的?