Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.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
&引用;setRowData";来自ag Grid won'的网格API的方法;即使在javascript对象打印值之后,也不能加载任何行_Javascript_Html_Node.js_Electron_Ag Grid - Fatal编程技术网

&引用;setRowData";来自ag Grid won'的网格API的方法;即使在javascript对象打印值之后,也不能加载任何行

&引用;setRowData";来自ag Grid won'的网格API的方法;即使在javascript对象打印值之后,也不能加载任何行,javascript,html,node.js,electron,ag-grid,Javascript,Html,Node.js,Electron,Ag Grid,我已经开发了一个electron应用程序,它将使用ag grid呈现任何.csv文件的视图。但是如果我使用gridoptions.api.setRowData(data1),其中data1是一个javascript数组对象。应用程序不会显示任何行 electron应用程序读取.csv文件并将数据保存在javascript数组中。在使用ag grid时,如果我决定通过将rowData定义为 data1.forEach(element => { rowData.push

我已经开发了一个electron应用程序,它将使用ag grid呈现任何.csv文件的视图。但是如果我使用gridoptions.api.setRowData(data1),其中data1是一个javascript数组对象。应用程序不会显示任何行

electron应用程序读取.csv文件并将数据保存在javascript数组中。在使用ag grid时,如果我决定通过将rowData定义为

    data1.forEach(element => {
        rowData.push({
            time:element.Time,
            level:element.Level,
            desc:element.Description,
            logger:element.Logger,
            device:element.ExternalDevice 
        });
    });
这里,data1是数组,time/level/desc/logger/device是rowdata字段。这可以很好地工作,并在网格中显示数据

但是,如果我想设计一个更通用的版本,并且决定不在rowData中键入文件,那么应该使用gridoptions.api.setRowData(data1)来加载数据。这部分不行

    if(data == "MantechPro")
    {
    columnDefs = [
        {
            headerName: "Description", 
            field: "description",
            width: 500,
            minwidth: 200, 
            filter: true
        },
        {
            headerName: "ExternalDevice", 
            field: "externaldevice",
        },
        {
            headerName: "Level", 
            field: "level",
            filter: true
        },
        {
            headerName: "Logger", 
            field: "logger", 
            filter:true
        },
        {
            headerName: "Time", 
            field: "time"
        },
    ];

    var gridOptions = {
    defaultColDef:{resizable: true},
    columnDefs: columnDefs,
    //rowData: rowData,
    pagination: true, 
    paginationPageSize: 20,
    onGridReady: function (params) {
    console.log(data1);
    gridOptions.api.setRowData(data1);
    params.api.sizeColumnsToFit();
    window.addEventListener('resize', function() {
      setTimeout(function() {
        params.api.sizeColumnsToFit();
      })
    })
    }
    };

    var eGridDiv = document.querySelector('#myGrid');
    new agGrid.Grid(eGridDiv, gridOptions);
    gridOptions.api.sizeColumnsToFit();
HTML看起来像这样

    <!DOCTYPE html>
    <html lang="en" style="height:100%;">

    <head>
     <script type="text/javascript" src="node_modules/ag-grid- 
     community/dist/ag-grid-community.js"></script>
     <link rel="stylesheet" href="refresh_button.css">
     <link rel="stylesheet" href="node_modules/ag-grid- 
     community/dist/styles/ag-grid.css"?>
    <link rel="stylesheet" href="node_modules/ag-grid- 
    community/dist/styles/ag-theme-balham.css"?>
    </head>
    <body style="height:100%;">
    <button type="button" id="refresh" class="button button2">Refresh- 
    Data</button>
    <br></br>
    <div id="myGrid" style="height: 80%; width:100%; position: 
    relative;overflow: hidden;" class="ag-theme-balham"></div>
    </div>
    <script type="text/javascript" src="load_agGrid.js"></script>
    </body>

    </html>

刷新-
资料



我认为您定义列定义的方式是错误的

数据对象的结构

{
    time:element.Time,
    level:element.Level,
    desc:element.Description,
    logger:element.Logger,
    device:element.ExternalDevice 
}
柱状结构

columnDefs = [
    {
        headerName: "Description", 
        field: "desc",
        width: 500,
        minwidth: 200, 
        filter: true
    },
    {
        headerName: "ExternalDevice", 
        field: "device",
    },
    {
        headerName: "Level", 
        field: "level",
        filter: true
    },
    {
        headerName: "Logger", 
        field: "logger", 
        filter:true
    },
    {
        headerName: "Time", 
        field: "time"
    },
];

此处def列中的字段应与数据对象中的属性名称匹配

此部分不工作
-您在浏览器控制台上看到任何错误吗?没有。没有错误,我甚至跟踪了ag grid->grid API的getModel()中的数据。它正确地显示了数据。你完全正确。所以我写了一个循环来定义ag网格的列。当我决定使用javascript对象数组作为“rowData”时,ag grid似乎希望columnDefs的字段名与对象属性名匹配。需要考虑的东西,嗯!!!
{
    time:element.Time,
    level:element.Level,
    desc:element.Description,
    logger:element.Logger,
    device:element.ExternalDevice 
}