【问题标题】:KendoGrid/Angular: cannot create grid columns/data dynamicallyKendoGrid/Angular:无法动态创建网格列/数据
【发布时间】:2015-02-13 14:37:40
【问题描述】:

In this plunk我有一个空网格(没有列)。当我点击“构建网格”时,我需要添加列(从数组中获取)并向表中添加一行。

问题是列没有添加到网格中,有什么想法吗?如果我尝试刷新网格,则会收到 undefined 错误。

HTML:

<button ng-click="buildGrid()">Build Grid</button>
<div kendo-grid="grid" k-options="gridOptions" k-data-source="ds"></div>

Javascript:

var app = angular.module("app", [ "kendo.directives" ]);

function MyCtrl($scope) {

    $scope.ds = []

    $scope.colsList =  [{ name: "col1" },
                        { name: "col2" },
                        { name: "col3" },
                        { name: "col4" }];


  var gridCols = [];

    $scope.gridOptions = {
            columns: gridCols
  };


$scope.buildGrid = function() {

        $scope.data = {};

        for (var x=0;x<$scope.colsList.length;x++) {
            var col = {};
            col.field = $scope.colsList[x].name;
            col.title = $scope.colsList[x].name;
            $scope.data[col.field] = "" + (1111 * (x+1));
            gridCols.push(col);
        }

        // add one row to the table
        $scope.ds.push($scope.data);
        //$scope.grid.refresh();

    };  
}

【问题讨论】:

    标签: angularjs kendo-ui kendo-grid


    【解决方案1】:

    您需要使用 k-rebind 以便重新初始化网格(您不能在现有网格上动态设置列):

    <div kendo-grid="grid" 
         k-options="gridOptions" 
         k-data-source="ds" 
         k-rebind="gridOptions"></div>
    

    (demo)

    【讨论】:

    • 没有js有什么办法吗?我有同样的问题。我有角度网格和两个按钮,一个绑定 5 列,另一个绑定 2,但是当我单击它们时,网格总是显示 5 列....如何解决这个问题?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多