I am a little frustrated by the lack of responsive properties of the grid. I can live with the problem of having to use the media property and kendo-grid-span-column directive for columns but why can't I also hide the toolbar on smaller devices? Surely the best method here would be to have the media property follow standard grid principles. For example a grid with four columns could have media="col-2", media="col-3", media="col-5", media="col-2" and the hidden property could have [hidden]="sm" etc. To stack using the kendo grid we need to duplicate code like so:
<!-- any device bigger than 360px -->
<kendo-grid-column
field=
"displayName"
title=
"{{ l('DisplayName')}}"
[minResizableWidth]=
"140"
width=
"140"
media=
"(min-width: 361px)"
>
</kendo-grid-column>
<kendo-grid-column
field=
"organizationUnit.id"
title=
"{{ l('OrganizationUnits')}}"
[minResizableWidth]=
"100"
media=
"(min-width: 361px)"
>
<ng-template kendoGridFilterMenuTemplate
let-column=
"column"
let-filter=
"filter"
let-filterService=
"filterService"
>
<multi-check-filter
[isPrimitive]=
"false"
[field]=
"column.field"
[currentFilter]=
"filter"
[filterService]=
"filterService"
textField=
"displayName"
valueField=
"id"
[data]=
"locations"
>
</multi-check-filter>
</ng-template>
<ng-template kendoGridCellTemplate let-dataItem>
{{dataItem.organizationUnit?.displayName}}
</ng-template>
</kendo-grid-column>
<!-- typical Android (360px) -->
<kendo-grid-span-column>
<kendo-grid-column
field=
"displayName"
title=
"{{ l('DisplayName')}}"
media=
"(max-width: 360px)"
[columnMenu]=
"false"
>
</kendo-grid-column>
<ng-template kendoGridCellTemplate let-dataItem>
<h4>{{dataItem.displayName}}</h4>
<p>{{dataItem.organizationUnit?.displayName}}</p>
</ng-template>
</kendo-grid-span-column>
But even then we can't hide the toolbar on smaller devices. Why won't a simple directive instruction like this for the toolbar template:
<ng-template kendoGridToolbarTemplate media=
"(max-width: 360px)"
>
<button type=
"button"
kendoGridExcelCommand [icon]=
"'file-excel'"
>{{ l(
'ExportToExcel'
)}}</button>
<kendo-grid-column-chooser class=
"pull-right"
></kendo-grid-column-chooser>
</ng-template>
When I started with the angular grid I thought I was going to get a lot of modern way of looking at things but it seems that the underlying code is generating css like we did 10 years ago when we were working with Telerik and Visual Basic and had 34 columns in a window which more or less worked like a spreadsheet. The documentation points to the widgets using a container which does not work well with Bootstrap because the Bootstrap container is 'non-default'. Come on guys, DevExpress grids stack, as do PrimeNG grids as do data tables (the list goes on).
Your widgets are so well thought out they are a pleasure to work with and I have worked with the MVC and JQuery stuff for a decade or so. Your scheduler has given me the opportunity to close so many deals I can't begin to count them all. I am so looking forward to the angular version. Your widgets are brilliant and your support is second to none. Your forums have a wealth of information your competitors must look on with envy.
But your approach to responsiveness is just so poor. Come one guys, give us something to shout about. Is there anything on the roadmap to change your approach or are you going to hang on to a css foundation which has the same footprint as a fossilised dinosaur?
Rant over, keep up the good work but please give us some good news on responsiveness because if the scheduler has the same problem it's game over. I really don't want to go and try the other options on the market but it's the device which is driving the market, not the functionality.