2017-09-16 97 views
0

我们正在使用剑道网格与angularjs,我试图动态更新列数据,但它不更新列信息。以下是代码。如何在剑道网格中动态更新列

function loadSelectRowsGrid(gridData) { 

    var selectRowsGridID = "#rowsConfiguration-Grid"; 
    var grid = $(selectRowsGridID).data("kendoGrid"); 
    if (grid !== undefined && grid.dataSource.options.data !== null) { 
     grid.destroy(); 
     } 

    pcService.rowConfiguration.configurationItem = []; 
    pcService.columnCollection.columns = []; 

    var maxColumnCount = 3 
    for (var i = 0 ; i <= maxColumnCount; i++) { 
     if (i != 0) { 
      //var columnObject = { "field": gridData.columnData[i].field };//+ "," + "title:" + localizationService.GetLocalizedText(gridData.columnData[i].field); 
      var columnObject = { "field": gridData.columnData[i].field, "title": localizationService.GetLocalizedText(gridData.columnData[i].field) }; 
      pcService.columnCollection.columns.push(columnObject); 
     } 
     else { 

     } 
    } 

    $(selectRowsGridID).kendoGrid({ 
     dataSource: { 
      data: gridData.gridData, 
     }, 
     columns: pcService.columnCollection.columns, //gridData.columnData, 
     scrollable: false, 
    }); 

}

请帮助我如何动态地更新列数据。

UPDATE

我发现为什么发生这种情况的原因,是因为我已经用在当我关闭弹出窗口剑道,但它依旧坐在DOM。如何破坏kendowindow弹出窗口?下面是我的语法:

var selectRowsDialog = $("#select-Rows-dialog").kendoWindow({ 
    width: "800px", 
    title: "Select rows", 
    autoOpen: false, 
    closable: true, 
    modal: true, 
    visible: false, 
    close: function() { }, }).data("kendoWindow").center().open(); 

回答

0

这是我的毁灭剑道部件:

$("#wnd") 
    .detach() 
    .data("kendoWindow") 
     .close() 
     .destroy(); 

首先,我detach它从DOM,然后我destroy它。

Demo