2017-09-16 2 views
0

Nous utilisons la grille de kendo avec angularjs, j'essaie de mettre à jour dynamiquement les données des colonnes, mais il ne met pas à jour les informations des colonnes. Voici le code.Comment mettre à jour des colonnes dynamiquement dans la grille de kendo

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, 
    }); 

}

S'il vous plaît aidez-moi comment mettre à jour les données de colonnes dynamiquement.

MISE À JOUR

Je trouve la raison pour laquelle cela se passe, parce que je l'ai utilisé la fenêtre kendo où quand je ferme la fenêtre, mais il est toujours assis dans DOM. Comment destory kendowindow popup? Ci-dessous est ma syntaxe:

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(); 

Répondre

0

Voici comment je détruis un widget kendo:

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

D'abord, je detach depuis le DOM, alors je destroy il.

Demo