Icon Demo

Fiddle showing dropdown icon

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<link rel="stylesheet" href="https://www.jqwidgets.com/public/jqwidgets/styles/jqx.base.css">
<link rel="stylesheet" href="https://www.jqwidgets.com/public/jqwidgets/styles/jqx.arctic.css">
<script src="https://www.jqwidgets.com/public/jqwidgets/jqx-all.js"></script>
<script src="https://www.jqwidgets.com/jquery-widgets-demo/demos/jqxgrid/generatedata.js"></script>
<div id='jqxWidget'>
    <div id="jqxgrid"></div>
</div>
<!--<div style="margin-top: 10px;">
    <input id="button" type="button" value="Consolidate" />
</div>-->

CSS

body {  width: 100%; height: 100%; }

JavaScript

var data = [
    { name: 'A', date: '07/15/2014 05:00:00.0',des:'This is for A' },
    { name: 'A', date: '08/16/2016 06:00:00.0',des:'This is for 2A' },
    { name: 'A', date: '07/15/2015 07:00:00.0',des:'This is for 3A' },
    { name: 'B', date: '07/15/2016 07:00:00.0',des:'This is for B' },
    { name: 'B', date: '08/16/2016 07:00:00.0',des:'This is for 2B' },
    { name: 'B', date: '09/15/2016 07:00:00.0',des:'This is for 3B' },
    { name: 'C', date: '08/15/2015 07:00:00.0',des:'This is for C' },
    { name: 'D', date: '12/15/2015 07:00:00.0',des:'This is for D' },
    { name: 'E', date: '11/15/2015 07:00:00.0' ,des:'This is for E'}
];

var cl = function (s) { console.log(s); }

var isUsedKey = function (arrayOfObject, key)
{
    for (var i = 0; i < arrayOfObject.length; i += 1)
    {
        if (arrayOfObject[i].key == key)
        {
            return true;
        }
    }

    return false;
};

var array = [];
var object = {};
for (var i = 0; i < data.length; i++)
{
    if (i == 0)
    {
        var newItem = {};
        newItem.key = data[i].name;
        newItem.dates = [data[i].date];
        newItem.description = data[i].des;
        array.push(newItem);
    } else
    {
        var item = data[i];
        var itemName = item.name;
        var itemDate = item.date;
        var itemDesc = item.des;

        if (isUsedKey(array, itemName))
        {
            for (var j = 0; j < array.length; j++)
            {
                if (array[j].key == itemName)
                {
                    var index = array[j].dates.length;
                    array[j].dates[index] = itemDate;
                }
            }
        } else
        {
            var nextNewItem = {};
            nextNewItem.key = itemName;
            nextNewItem.dates = [itemDate];
            nextNewItem.description = itemDesc;
            array.push(nextNewItem);
        }
    }
}

var newSource = {
    localdata: array,
    datafields: [{
        name: 'name',
        type:...