Introduction
In this article, we will learn about the very powerful Kendo Grid by Telerik that provides rich inbuilt features with less coding. We integrate the kendo grid using jQuery. Kendo can be used with any modern technology, such as - ASP.ET WebForm, ASP.NET MVC, .NET Core MVC, Node.js, PHP etc.
Prerequisites
- Visual Studio Code or any Text Editor
- Web Service or Web API
For this demo, I have used the web service created and hosted by
Telerik. Source code for this web service is open source that you can review on GitHub as well.
Note
Kendo Grid is a licensed version.
Description
As we know, each and every application requires any tabular format to display small or large data with basic functionality, like Grid with Sorting, Filtering, Paging etc.
Here, the Kendo Grid provides the above functionality along with other advanced and powerful inbuilt features as mentioned below.
- Column Reordering
- Column Resizing
- Excel-Like filter menu which contains(Start With, End With, Contains, Not Contains. Equal to, Not equal to etc filter action)
- Hide or show column
- Keyboard navigation
- Row grouping
- Paging with Server and client-side
- Row or cell selection and Copy selected rows or cells in the clipboard with (Ctrl + C)
- Change detection in Cell Edit mode or batch edit mode
- Persistent selection of rows while sorting and filtering
- Export data to excel, pdf etc
- Inbuilt CRUD Operation with different edit mode like inline, popup, in cell etc
- Inbuilt themes or skin
- Support multiple form control e.g. DateTime, Textbox, Numeric, Checkbox, Dropdown etc
- Built-in validation as well.
- Frozen or lock column
CRUD operation and other advanced features will be explained in the next article. I have tried my best to cover as many as possible features in this article.
Step 1
Add Kendo UI CSS and JS along with jQuery UI as below.
- <!-- Add Kendo Grid CSS Reference-->
- <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2018.2.620/styles/kendo.common-material.min.css" />
- <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2018.2.620/styles/kendo.material.min.css" />
- <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2018.2.620/styles/kendo.material.mobile.min.css" />
- <link rel="stylesheet" href="style.css" />
- <!-- Add Kendo Grid Js Reference -->
- <script src="https://kendo.cdn.telerik.com/2018.2.620/js/jquery.min.js"></script> <!-- jszip required for export to excel-->
- <script src="https://kendo.cdn.telerik.com/2018.2.620/js/jszip.min.js"></script>
- <script src="https://kendo.cdn.telerik.com/2018.2.620/js/kendo.all.min.js"></script>
Step 2
Add selector in HTML page so we can bind the grid to that element.
- <div id="data-container">
- <div id="grid"></div>
- </div>
Step 3
Prepare, configure, and initialize Kendo grid feature to DOM element (#grid). Take a look,
- $(document).ready(function() {
- console.log("** Dom is ready **");
-
-
- var columnOptions = [{
- field: "CustomerID",
- editable: false
- }, {
- field: "ContactName",
- title: "Contact Name",
-
- width: 240
- }, {
- field: "ContactTitle",
- title: "Contact Title",
-
- }, {
- field: "CompanyName",
- title: "Company Name",
-
- }, {
- field: "Address",
- filterable: false,
- }, {
- field: "City"
- }, {
- field: "PostalCode"
- }, {
- field: "Country",
-
- }];
-
- var dataSourceOptions = {
- type: "odata",
- transport: {
- read: "https://demos.telerik.com/kendo-ui/service/Northwind.svc/Customers"
- },
- pageSize: 20,
- schema: {
- model: {
- id: "CustomerID"
- }
- }
- };
-
-
- var kendoGridOption = {
- dataSource: dataSourceOptions,
- columns: columnOptions,
- toolbar: [{
- name: "cancel"
- }, {
- name: "excel"
- }, {
- name: "pdf"
- }],
-
- excel: {
- allPages: true,
- fileName: "Customer Details.xlsx",
- filterable: true
- },
- height: 630,
- editable: true,
-
- groupable: {
- messages: {
- empty: "Drop columns here"
- }
- },
- sortable: true,
- filterable: true,
- resizable: true,
- reorderable: true,
- columnMenu: true,
-
- noRecords: {
- template: "No data available on current page. Current page is: #=this.dataSource.page()#"
- },
-
- selectable: "multiple row",
- persistSelection: true,
- navigatable: true,
- allowCopy: {
- delimeter: ",",
- },
- pageable: {
- refresh: true,
- pageSizes: true,
- buttonCount: 5,
- pageSize: 20
- }
- };
-
- $("#grid").kendoGrid(kendoGridOption);
- });
The above script needs to be wrapped in script tag.
As per the above JavaScript code, you can easily configure most of the features with less code by just setting a specific property to it. I have tried to add possible or required comments to the above code snippet to make it more understandable.
Once you add the above code, it will show an output like the below screenshot which contains toolbar options, Row grouping on Country and City Column with Sorting, interactive Paging and Excel-like filter (three dots in column header).
- https://demos.telerik.com/kendo-ui/grid/index
- https://demos.telerik.com/kendo-ui/grid/column-reordering
Conclusion
In this article, we have learned how to integrate Kendo Grid using jQuery UI with an in-built feature with easy configuration.
I hope you like this article.