So, after some digging and what not. I came to the conclusion that is was a mouse down event some where. So I don't know all the repructions of doing this. but i was able to speed up my Grid significantly, from 3 seconds / never selecting a row to less then half a second.
This is with TypeScript, but isn't too much different then javascript.
if (!!navigator.userAgent.match(/Trident.*rv\:11\./))
{
var rows = this.KendoGrid.tbody.children("tr[role='row']").toArray();
rows .forEach(row =>
{
var jqueryRow = $(row);
jqueryRow.on("mousedown", (event) =>
{
if (!event.ctrlKey)
{
this.KendoGrid.clearSelection();
}
else if (event.ctrlKey && jqueryRow.hasClass("k-state-selected"))
{
//Do some stuff to unselect the current row and re-select the other rows.
}
else
{
this.KendoGrid.select(row);
}
//This is the part that matters, this Stops Kendo from recalculating offsetwidth on elements multiple times, which is the problem.
event.stopImmediatePropagation();
event.preventDefault();
});
jqueryRow.on("click", (event) =>
{
if (event.ctrlKey)
{
//ctrl is weird and was like selecting and deselecting so this was needed
event.stopImmediatePropagation();
event.preventDefault();
}
});
});
}
The first line it to just detect IE 11 since it is the only IE version we support.
Again I do not know what this will break with Kendo. but the speed improvement is like 100 times better.