JSFiddle - React, Tailwind, and code Playground

by theScream

HTML

<script src="http://demos.kendoui.com/content/shared/js/people.js"></script>
<link rel="stylesheet" href="http://cdn.kendostatic.com/2012.3.1114/styles/kendo.common.min.css">
<link rel="stylesheet" href="http://cdn.kendostatic.com/2012.3.1114/styles/kendo.default.min.css">
<script src="http://cdn.kendostatic.com/2012.3.1114/js/kendo.all.min.js"></script>
<div id="panels">
    <div id="visibleGrid"></div>
    <div id="commands">
        <div><a href="#" id="moveItemToTop" class="k-button" style="width:150px;">Move To Top</a></div>
        <div><a href="#" id="moveItemUp" class="k-button"style="width:150px;">Move Up</a></div>
        <div><a href="#" id="moveItemDown" class="k-button"style="width:150px;">Move Down</a></div>
        <div><a href="#" id="moveItemToBottom" class="k-button"style="width:150px;">Move to Bottom</a></div>
    </div>
</div>

CSS

* {
    font-family: "Verdana", sans-serif;
    font-size: 10pt;
}

#panels {
    display: table-row;
}

#visibleGrid {
    width: 400px;
    display: table-cell;
}

#commands div {
    padding-left: 15px;
    padding-bottom: 3px;
}

JavaScript

var uids = [];
var selectedOrders = [];
var idField = "Id";

var ds1 = {
    data:     createRandomData(10),
    pageSize: 10,
    schema:   {
        model: {
            id:     "Id",
            fields: {
                Id:        { type: 'number', editable: true },
                FirstName: { type: 'string', editable: true  },
                LastName:  { type: 'string', editable: true  }
            }
        }
    }
};

var visibleGrid = $("#visibleGrid").kendoGrid({
    dataSource: ds1,
    editable: "popup",
    selectable: "multiple",
    scrollable: true,
    change: function (e, args) {
        var grid = e.sender;
        var items = grid.items();
        
        items.each(function (idx, row) {
            var idValue = grid.dataItem(row).get(idField);
            if (row.className.indexOf("k-state-selected") >= 0) {
                selectedOrders[idValue] = true;
            } else if (selectedOrders[idValue]) {
                delete selectedOrders[idValue];
            }
        });
    },
    dataBound: function (e) {
        var grid = e.sender;
        var items = grid.items();
        var itemsToSelect = [];
        items.each(function (idx, row) {
            var dataItem = grid.dataItem(row);
            if (selectedOrders[dataItem[idField]]) {
                itemsToSelect.push(row);
            }
        });

        e.sender.select(itemsToSelect);
    },
    columns:    [
        { field: "Id", width: 30, title: "Id" } ,
        { field: "FirstName", width: 90, title: "First Name" },
        { field: "LastName", width: 90, title: "Last Name" }
    ]
}).data("kendoGrid");

/* move up */
$("#moveItemUp").on("click", function (idx, elem) {

    var selected = visibleGrid.select();
    if (selected.length > 0) {

        $.each(selected, function (idx, elem) {
            var dataItem = visibleGrid.dataItem($(this));
            var index = visibleGrid.dataSource.indexOf(dataItem);

            if (index > 0) {
                var newIndex...