Kendo UI Grid Dynamic Columns (Arrays)

by darrenarbell

HTML

<script src="http://cdn.kendostatic.com/2012.1.322/js/kendo.all.min.js"></script>
<link rel="stylesheet" href="http://cdn.kendostatic.com/2012.1.322/styles/kendo.default.min.css">
<link rel="stylesheet" href="http://cdn.kendostatic.com/2012.1.322/styles/kendo.common.min.css">
<script src="https://raw.github.com/cowboy/jquery-resize/v1.1/jquery.ba-resize.js"></script>
<div id="example" class="k-content">
    <table id="grid" data-bind="source: gridRows">
    </table>
</div>

JavaScript

var rows = [];
for (var i = 0; i < 5; i++) {
    var entryArray = [];
    for (var j = 0; j < 5; j++) {
        entryArray.push(2);
   }
    rows.push(kendo.observable({
        entries: entryArray
    }));
}

$(document).ready(function() {
        var viewModel = kendo.observable({
            gridRows: rows
        });

    var columns = [];

    for (var i = 0; i < 5; i++) {
        var entryIndex = "entries[" + i + "]";
        columns.push({
            field: entryIndex,
            title: "Column " + i
        });
    }

    var configuration = {
        editable: true,
        sortable: true,
        scrollable: false,
        columns: columns
    };

    var timeEditGrid = $("#grid").kendoGrid(configuration).data("kendoGrid");


    kendo.bind($('#example'), viewModel);
});