AG网格:行拖动(旧值)

时间:2020-01-27 18:07:24

标签: ag-grid

在将行呈现到网格中之后更新节点数据时,拖动的重影标签不会更新以反映列上值的变化。

例如,记录#1的初始运动员价值是'Michel Phelps'。出于onFirstDataRendered的目的,我将运动员字段更新为“马克吐温” 。如果您开始拖动行,则会设置旧的列值,而不是更新数据。

补救方法是致电

api.redrawRows({rowNodes:[]})

或实施

'unmanagaged'rowDragManaged。

基础行拖动事件是否应该更新以观察最新的valueGetter返回值?

代码示例:

var columnDefs = [
    {field: "athlete", rowDrag: true},
    {field: "country"},
    {field: "year"},
    {field: "date"},
    {field: "sport"},
    {field: "gold"},
    {field: "silver"},
    {field: "bronze"}
];

var gridOptions = {
    defaultColDef: {
        width: 150,
    },
    rowDragManaged: true,
    columnDefs: columnDefs,
    animateRows: true,
    onFirstDataRendered: function(params){
      var row = params.api.getDisplayedRowAtIndex(0);
      if(row){
        row.setDataValue("athlete","Mark Twain");
      }
    }
};

// setup the grid after the page has finished loading
document.addEventListener('DOMContentLoaded', function() {
    var gridDiv = document.querySelector('#myGrid');
    new agGrid.Grid(gridDiv, gridOptions);

    // do http request to get our sample data - not using any framework to keep the example self contained.
    // you will probably use a framework like JQuery, Angular or something else to do your HTTP calls.
    var httpRequest = new XMLHttpRequest();
    httpRequest.open('GET', 'https://raw.githubusercontent.com/ag-grid/ag-grid/master/packages/ag-grid-docs/src/olympicWinners.json');
    httpRequest.send();
    httpRequest.onreadystatechange = function() {
        if (httpRequest.readyState === 4 && httpRequest.status === 200) {
            var httpResult = JSON.parse(httpRequest.responseText);
            gridOptions.api.setRowData(httpResult);
        }
    };
});

0 个答案:

没有答案