Telerik Forums
Kendo UI for jQuery Forum
5 answers
823 views

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?

Stefan
Telerik team
 answered on 21 Mar 2017
1 answer
486 views

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

Ivan Danchev
Telerik team
 answered on 21 Mar 2017
1 answer
143 views

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

 

 

Veselin Tsvetanov
Telerik team
 answered on 21 Mar 2017
1 answer
113 views

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!

Dimiter Topalov
Telerik team
 answered on 21 Mar 2017
1 answer
70 views

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?

Ianko
Telerik team
 answered on 21 Mar 2017
6 answers
233 views

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!

Nencho
Telerik team
 answered on 21 Mar 2017
8 answers
686 views

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.

Ivan Danchev
Telerik team
 answered on 21 Mar 2017
1 answer
133 views

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 ?

Joana
Telerik team
 answered on 21 Mar 2017
2 answers
190 views

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

Chris
Top achievements
Rank 1
 answered on 20 Mar 2017
4 answers
196 views

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. 
08.    <link rel="stylesheet" href="http://kendo.cdn.telerik.com/2017.1.118/styles/kendo.rtl.min.css"/>
11. 
12.    <script src="http://code.jquery.com/jquery-1.12.4.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: data
35.  }, 
36.  seriesDefaults: {
37.    type: "line",
38.    missingValues:'interpolate',
39.    stack:true,
40.    field:'data.Value'
41.  },
42.  series: data
43.});
44.</script>
45.</body>
46.</html>
Brad
Top achievements
Rank 1
 answered on 20 Mar 2017
Narrow your results
Selected tags
Tags
Grid
General Discussions
Charts
Data Source
Scheduler
DropDownList
TreeView
MVVM
Editor
Window
DatePicker
Spreadsheet
Upload
ListView (Mobile)
ComboBox
TabStrip
MultiSelect
AutoComplete
ListView
Menu
Templates
Gantt
Validation
TreeList
Diagram
NumericTextBox
Splitter
PanelBar
Application
Map
Drag and Drop
ToolTip
Calendar
PivotGrid
ScrollView (Mobile)
Toolbar
TabStrip (Mobile)
Slider
Button (Mobile)
Filter
SPA
Drawing API
Drawer (Mobile)
Globalization
LinearGauge
Sortable
ModalView
Hierarchical Data Source
Button
FileManager
MaskedTextBox
View
Form
NavBar
Notification
Switch (Mobile)
SplitView
ListBox
DropDownTree
PDFViewer
Sparkline
ActionSheet
TileLayout
PopOver (Mobile)
TreeMap
ButtonGroup
ColorPicker
Pager
Styling
Chat
MultiColumnComboBox
Dialog
DateRangePicker
Checkbox
Timeline
Drawer
DateInput
ProgressBar
MediaPlayer
ImageEditor
TextBox
OrgChart
Accessibility
Effects
PivotGridV2
ScrollView
Switch
TextArea
BulletChart
Licensing
QRCode
ResponsivePanel
Wizard
CheckBoxGroup
Localization
Barcode
Breadcrumb
Collapsible
MultiViewCalendar
Touch
RadioButton
Stepper
Card
ExpansionPanel
Rating
RadioGroup
Badge
Captcha
Heatmap
AppBar
Loader
Security
TaskBoard
Popover
DockManager
FloatingActionButton
CircularGauge
ColorGradient
ColorPalette
DropDownButton
TimeDurationPicker
ToggleButton
TimePicker
BottomNavigation
Ripple
SkeletonContainer
Avatar
Circular ProgressBar
FlatColorPicker
SplitButton
Signature
Chip
ChipList
VS Code Extension
AIPrompt
PropertyGrid
Sankey
Chart Wizard
OTP Input
SpeechToTextButton
InlineAIPrompt
StockChart
ContextMenu
DateTimePicker
RadialGauge
ArcGauge
AICodingAssistant
SegmentedControl
+? more
Top users last month
Boardy
Top achievements
Rank 2
Veteran
Iron
Benjamin
Top achievements
Rank 3
Bronze
Iron
Veteran
ivory
Top achievements
Rank 1
Iron
Iron
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
ClausDC
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Boardy
Top achievements
Rank 2
Veteran
Iron
Benjamin
Top achievements
Rank 3
Bronze
Iron
Veteran
ivory
Top achievements
Rank 1
Iron
Iron
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
ClausDC
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?