Html TreeGrid

Set the virtualModeRecordCreating property of the jqxTreeGrid. Author: http://jqwidgets.com

by jqwidgets

HTML

<link rel="stylesheet" href="https://jqwidgets.com/public/jqwidgets/styles/jqx.base.css">
<script src="https://jqwidgets.com/public/jqwidgets/jqx-all.js"></script>
<link rel="stylesheet" href="https://jqwidgets.com/public/jqwidgets/styles/jqx.energyblue.css">
<div id="treeGrid"></div>

JavaScript

var generateTasks = function (rowsCount) {
    var rowsCount = !rowsCount ? 1 + Math.floor(Math.random() * 5) : rowsCount;
    var data = new Array();
    var generatekey = function () {
        var S4 = function () {
            return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
        };
        return (S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4());
    };

    for (var i = 0; i < rowsCount; i++) {
        var row = {};
        var tasks = ["Shopping", "Housewares", "Kitchen supplies", "Groceries", "Cleaning supplies", "Office supplies", "Remodeling", "Paint bedroom", "Paint wall", "Fitness", "Decorate living room",
            "Fix lights", "Fix front door", "Clean kitchen"];
        var firstNames = [
            "Andrew", "Nancy", "Shelley", "Regina", "Yoshi", "Antoni", "Mayumi", "Ian", "Peter", "Lars", "Petra", "Martin", "Sven", "Elio", "Beate", "Cheryl", "Michael", "Guylene"];

        var lastNames = [
            "Fuller", "Davolio", "Burke", "Murphy", "Nagase", "Saavedra", "Ohno", "Devling", "Wilson", "Peterson", "Winkler", "Bein", "Petersen", "Rossi", "Vileid", "Saylor", "Bjorn", "Nodier"];
        row["id"] = generatekey();
        row["firstname"] = firstNames[Math.floor(Math.random() * firstNames.length)];
        row["lastname"] = lastNames[Math.floor(Math.random() * lastNames.length)];
        row["name"] = row["firstname"] + " " + row["lastname"];
        var taskindex = Math.floor(Math.random() * tasks.length);
        row["task"] = tasks[taskindex];
        row["duration"] = 1 + Math.floor(Math.random() * 10);
        data.push(row);
    }
    return data;
}

// create Tree Grid
$("#treeGrid").jqxTreeGrid({
    width: 600,
    theme: 'energyblue',
    pageable: true,
    altRows: true,
    virtualModeCreateRecords: function (expandedRecord, done) {
        // expandedRecord is equal to null when the function is initially called, because there is still no record to be expanded.

        //...