We are implementing the Grouping feature in our grids and we've found some issues related to the Sorting while a grid is groupĂng. We see also different behaviors at the demos between doing the binding to local data and remote data.
[NOTE: We are binding to remote data.]
The issues are the following:
*** ISSUE 1: Grouping is not sorting by default
From the initial state of the grid, if we do a column grouping, the grouping is not applying the sort. The grid is grouping only the elements that we see at the page where are.
Repro steps:
1) Open the following Dojo from the Kendo UI demo of the remote data grid: http://dojo.telerik.com/uFeHo
2) With the default state of the grid, pick the column of Ship City for grouping
3) See the elements of the group of Albuquerque (just one)
4) Sort by the Ship City column
5) See that the elements of the group of Albuquerque are more than one
6) See also that the first group is not Alburquerque, now it's Aachen
Expectation:
Please try the same using the demo of the local data grid: http://dojo.telerik.com/iRoLa
*** ISSUE 2: Grouping sort is ordering only the page where we are
Repro steps:
1) Open the following Dojo from the Kendo UI demo of the remote data grid: http://dojo.telerik.com/uFeHo
2) With the default state of the grid, pick the column of Ship City for grouping
3) Press the chip of the grouping to change the grouping sort
Expectation:
Please try the same using the demo of the local data grid: http://dojo.telerik.com/iRoLa
*** ISSUE 3: Grid allows to apply column sort while the column is used for grouping
Repro steps:
1) Open the following Dojo from the Kendo UI demo of the remote data grid: http://dojo.telerik.com/uFeHo
2) With the default state of the grid, pick the column of Ship City for grouping
3) Press the Ship City column header for sort
Expectation:
Please try the same using the demo of the local data grid: http://dojo.telerik.com/iRoLa
(!) IMPORTANT
Grouping is a required feature that is critical for us...
How expensive is a workaround to disable the sort of the grouping element and fix the default sorting when the grouping is used?

Hi,
I used Gantt Chart to show a number of jobs and related tasks to it but my requirement is to display multiple tasks related to one job should show in one row in gantt chart. Is this features supported by Gantt Chart?
Thanks
Neha

Hi team,
I have an requirement where i click an <a id="name" text="Empname"></a>
When user click the attribute a i need to call an kendo Window window which in terms call an remote data source in my case web api service.
Once i get the data i need to show those fields in the kendoWindow and close button to close it.
Fields that i need show
Name
Company Name:
<div id="dialog"></div><script>$("#dialog").kendoWindow({ autoFocus: false});</script>
Address:
so how can i call in service from kendoWindow and bind it to an html field like label
if you can give some reference nand mock up of code here i can build my screen thank you again!
Thanks
HIi Team,
I am using tabstrip control i need to implement a funcationality which tells the screen is laoding.
in my Case its taking 5-7 sec to load i need to put image to user telling the screen is loading so that they do not hit any button in the mean while everyting is graded out...
function onSelect(e) { $(e.contentElement).html(""); }<script type="text/javascript"> $m = jQuery.noConflict(); $m(document).ready(function myfunction() { function onSelect(e) { $(e.contentElement).html(""); } $m("#tabstrip").kendoTabStrip({ select: onSelect, tabPosition: "left", dataTextField: "desc", dataContentUrlField: "Url", dataValueField: "menuOrder", dataBound: function (e) { e.sender.select(0); } })//.data("kendoTabStrip").select(0); var dataSource = new kendo.data.DataSource( { transport: { read: { url: "http://localhost:58030/Config/api/Featus/GetMenu", type: "GET", dataType: "json", contentType: "application/json", charset: "utf-8" } }, data: { name: { type: "string" }, desc: { type: "string" }, menuOrder: { type: "string" }, Url: { type: "string" } }, }); var tabStrip1 = $m("#tabstrip").data("kendoTabStrip"); tabStrip1.setDataSource(dataSource); });</script>Let me know where should i put this loading content.
<div id="divProcessing">
<p>Processing, please wait . . . <img src="../../Content/ajax-loader.gif"></p>
</div>
Should i put this code in tabstrip control or in the tabstrip contents where it is displayed ?
I have done in mvc can you help me to achive in Kendo UI
Thanks in advance!

I have a function called setFilter, which sets up the current filter for the kendo scheduler and looks like:
function setFilter(){
//console.log(ownerIdArr);
//console.log(typeIdArr);
//console.log(locIdArr);
//console.log(descripIdArr);
//console.log(dateIdArr);
scheduler.dataSource.filter({
operator: function(task) {
//console.log(task);
//Check for all 5 filters
if(ownerIdArr.length > 0 && descripIdArr.length > 0 && locIdArr.length > 0 && picklistIdArr.length > 0 && dateIdArr > 0)
return ($.inArray(task.location, locIdArr) >= 0 && $.inArray(task.taskId, descripIdArr) >= 0 && getInvitedUsers(task, ownerIdArr) && filterPicklists(task) && $.inArray(task.taskId, dateIdArr) >= 0);
//Check 4 filters
else if(ownerIdArr.length > 0 && descripIdArr.length > 0 && locIdArr.length > 0 && picklistIdArr.length > 0)
return (getInvitedUsers(task, ownerIdArr) && $.inArray(task.taskId, descripIdArr) >= 0 && $.inArray(task.locId, locIdArr) >= 0 && filterPicklists(task));
else if(ownerIdArr.length > 0 && descripIdArr.length > 0 && picklistIdArr.length > 0 && dateIdArr.length > 0)
return (getInvitedUsers(task, ownerIdArr) && $.inArray(task.taskId, descripIdArr) >= 0 && filterPicklists(task) && $.inArray(task.taskId, dateIdArr) >= 0);
else if(ownerIdArr.length > 0 && descripIdArr.length > 0 && locIdArr.length > 0 && dateIdArr.length > 0)
return (getInvitedUsers(task, ownerIdArr) && $.inArray(task.taskId, descripIdArr) >= 0 && $.inArray(task.location, locIdArr) >= 0 && $.inArray(task.taskId, dateIdArr) >= 0);
else if(descripIdArr.length > 0 && locIdArr.length > 0 && picklistIdArr.length > 0 && dateIdArr.length > 0)
return ($.inArray(task.taskId, descripIdArr) >= 0 && $.inArray(task.location, locIdArr) >= 0 && filterPicklists(task) && $.inArray(task.taskId, dateIdArr) >= 0);
else if(locIdArr.length > 0 && picklistIdArr.length > 0 && dateIdArr.length > 0 && descripIdArr.length > 0)
return ($.inArray(task.location, locIdArr) >= 0 && filterPicklists(task) && $.inArray(task.taskId, dateIdArr) >= 0 && $.inArray(task.taskId, descripIdArr) >= 0);
else if(locIdArr.length > 0 && ownerIdArr.length > 0 && picklistIdArr.length > 0 && dateIdArr.length > 0)
return ($.inArray(task.location, locIdArr) >= 0 && getInvitedUsers(task, ownerIdArr) && filterPicklists(task) && $.inArray(task.taskId, dateIdArr) >= 0);
//Check 3 filters
else if(ownerIdArr.length > 0 && descripIdArr.length > 0 && picklistIdArr.length > 0)
return ($.inArray(task.taskId, descripIdArr) >= 0 && getInvitedUsers(task, ownerIdArr) && filterPicklists(task));
else if(ownerIdArr.length > 0 && locIdArr.length > 0 && picklistIdArr.length > 0)
return ($.inArray(task.location, locIdArr) >= 0 && getInvitedUsers(task, ownerIdArr) && filterPicklists(task));
else if(descripIdArr.length > 0 && picklistIdArr.length > 0 && locIdArr.length > 0)
return ($.inArray(task.location, locIdArr) >= 0 && $.inArray(task.taskId, descripIdArr) >= 0 && filterPicklists(task));
else if(ownerIdArr.length > 0 && descripIdArr.length > 0 && locIdArr.length > 0)
return ($.inArray(task.location, locIdArr) >= 0 && $.inArray(task.taskId, descripIdArr) >= 0 && getInvitedUsers(task, ownerIdArr));
else if(ownerIdArr.length > 0 && descripIdArr.length > 0 && dateIdArr.length > 0)
return (getInvitedUsers(task, ownerIdArr) && $.inArray(task.taskId, descripIdArr) >= 0 && $.inArray(task.taskId, dateIdArr) >= 0);
else if(ownerIdArr.length > 0 && locIdArr.length > 0 && dateIdArr.length > 0)
return (getInvitedUsers(task, ownerIdArr) && $.inArray(task.location, locIdArr) >= 0 && $.inArray(task.taskId, dateIdArr) >= 0);
else if(ownerIdArr.length > 0 && picklistIdArr.length > 0 && dateIdArr.length > 0)
return (getInvitedUsers(task, ownerIdArr) && filterPicklists(task) && $.inArray(task.taskId, dateIdArr) >= 0);
else if(descripIdArr.length > 0 && locIdArr.length > 0 && dateIdArr.length > 0)
return ($.inArray(task.taskId, descripIdArr) >= 0 && $.inArray(task.location, locIdArr) >= 0 && $.inArray(task.taskId, dateIdArr) >= 0);
else if(descripIdArr.length > 0 && picklistIdArr.length > 0 && dateIdArr.length > 0)
return ($.inArray(task.taskId, descripIdArr) >= 0 && filterPicklists(task) && $.inArray(task.taskId, dateIdArr) >= 0);
else if(picklistIdArr.length > 0 && locIdArr.length > 0 && dateIdArr.length > 0)
return (filterPicklists(task) && $.inArray(task.location, locIdArr) >= 0 && $.inArray(task.taskId, dateIdArr) >= 0);
//Check 2 filters
else if(ownerIdArr.length > 0 && dateIdArr.length > 0)
return (getInvitedUsers(task, ownerIdArr) && $.inArray(task.taskId, dateIdArr) >= 0);
else if(descripIdArr.length > 0 && dateIdArr.length > 0)
return ($.inArray(task.taskId, descripIdArr) >= 0 && $.inArray(task.taskId, dateIdArr) >= 0);
else if(locIdArr.length > 0 && dateIdArr.length > 0)
return ($.inArray(task.location, locIdArr) >= 0 && $.inArray(task.taskId, dateIdArr) >= 0);
else if(picklistIdArr.length > 0 && dateIdArr.length > 0)
return (filterPicklists(task) && $.inArray(task.taskId, dateIdArr) >= 0);
else if(ownerIdArr.length > 0 && descripIdArr.length > 0)
return (getInvitedUsers(task, ownerIdArr) && $.inArray(task.taskId, descripIdArr) >= 0);
else if(ownerIdArr.length > 0 && locIdArr.length > 0)
return (getInvitedUsers(task, ownerIdArr) && $.inArray(task.location, locIdArr) >= 0);
else if(descripIdArr.length > 0 && locIdArr.length > 0)
return ($.inArray(task.taskId, descripIdArr) >= 0 && $.inArray(task.location, locIdArr) >= 0);
else if(descripIdArr.length > 0 && picklistIdArr.length > 0)
return ($.inArray(task.taskId, descripIdArr) >= 0 && filterPicklists(task));
else if(ownerIdArr.length > 0 && picklistIdArr.length > 0)
return (getInvitedUsers(task, ownerIdArr) && filterPicklists(task));
else if(locIdArr.length > 0 && picklistIdArr.length > 0)
return ($.inArray(task.location, locIdArr) >= 0 && filterPicklists(task));
//Else, only check for 1 filter
else if(picklistIdArr.length > 0)
return filterPicklists(task);
else if(descripIdArr.length > 0)
return $.inArray(task.taskId, descripIdArr) >= 0;
else if(ownerIdArr.length > 0 || groupIdArr.length > 0)
return getInvitedUsers(task, ownerIdArr);
else if(locIdArr.length > 0)
return $.inArray(task.location, locIdArr) >= 0;
else if(dateIdArr.length > 0)
return filterPicklists(task);
else
return false;
}
});
}
The problem is... This runs after ANY change to ANY kendo widget. Changing the scheduler view makes the filter run for every task (event), when I create/edit an event, the filter runs after I click out of EVERY field in the editor/creator (which I don't get... no filtering should be happening in the create/edit popup... only after clicking save I would think...)
The filter running so much is problematic because it runs for EVERY event... so if I have 1000+ events.......... the scheduler just drags horribly and operates so slowly.
Is there anything to be done to speed this up?

I have validation list on some of my cells as demonstrated here:
http://dojo.telerik.com/@marclazell/UcAVu
Is there a way to stop the users removing the value completely? They can delete it manually and no warning message appears.
Thanks!

Hi,
I want to set Kendo Razor Gantt Height to 100%. But This only occurs when I resize my window, otherwise is my Gantt not 100%
<script type="text/javascript"> $(document).ready(function () { changeWidth(); }); window.onresize = function (event) { changeWidth() } function changeWidth() { var element = document.getElementById("gantt"); var height = 0; var body = window.document.body; if (window.innerHeight) { height = window.innerHeight; } else if (body.parentElement.clientHeight) { height = body.parentElement.clientHeight; } else if (body && body.clientHeight) { height = body.clientHeight; } element.style.height = ((height - element.offsetTop - 150) + "px"); console.log(height); }<script>
Please let know what am i missing. Thanks in advance.

Is it possible to let the spreadsheet input cell accepts comma's instead of decimal in use of formulars ?
ex =E3*1,1 which trigger my validation that use the function ISNUMBER. =E3*1.1 works fine. So I believe that the ISNUMBER function only accepts US numberformat ?
In the attached files, categories are the Group field, and bars are stacked according to the Response field.
Values for the 2-Neutral and 3-Agree groups display correctly in the right category. Values for the first group of 1-Disagree are in the wrong order. They should be 12.5, 16.2, 19.8, 24.8 and 24.7. The second value shows at the bottom of the chart in the fifth 5-20+ years category, instead of in the second 2 to less than 5 years category.
Can you help me resolve this problem?
Thanks very much for your help.
Chris
I am looking to display several series on a line chart. Each series comes from a different datasource, but I have normalized them client-side to ensure there are the correct number of values for the category axis. I am trying to bind to a custom value field in the series. Below is one example of my attempt and I think illustrates well what I am trying to do. Is this possible?
01.<!DOCTYPE html>02.<html>03.<head>04. <meta charset="utf-8"/>05. <title>Kendo UI Snippet</title>06. 07. <link rel="stylesheet" href="http://kendo.cdn.telerik.com/2017.1.118/styles/kendo.common.min.css"/>08. <link rel="stylesheet" href="http://kendo.cdn.telerik.com/2017.1.118/styles/kendo.rtl.min.css"/>09. <link rel="stylesheet" href="http://kendo.cdn.telerik.com/2017.1.118/styles/kendo.silver.min.css"/>10. <link rel="stylesheet" href="http://kendo.cdn.telerik.com/2017.1.118/styles/kendo.mobile.all.min.css"/>11. 12. <script src="http://code.jquery.com/jquery-1.12.4.min.js"></script>13. <script src="http://kendo.cdn.telerik.com/2017.1.118/js/kendo.all.min.js"></script>14.</head>15.<body>16. 17.<div id="chart"></div>18.<script>19. var data = [20. {name:'Series 1',21. //data:[-1, 1, null, 1.2, .8, null, 2, -2],22. data:[{Id:1, Value:-1, Year:2010}, {Id:2, Value:2, Year:2011}, {Id:3, Value:null, Year:2012}, {Id:4, Value:4, Year:2013}],23. field:'data.Value',24. color:'red'25. },26. {name:'Series 2',27. data:[{Id:1, Value:1, Year:2010}, {Id:2, Value:3, Year:2011},{Id:3, Value:5, Year:2012}, {Id:4,Value:7, Year:2013}],28. field:'data.Value',29. color:'green'30. }, 31. ]32.$("#chart").kendoChart({33. dataSource: {34. data: data35. }, 36. seriesDefaults: {37. type: "line",38. missingValues:'interpolate',39. stack:true,40. field:'data.Value'41. },42. series: data43.});44.</script>45.</body>46.</html>