Introducing React ReExt – Sencha Ext JS Components in React! LEARN MORE

Modernize Your JavaScript Grids With Sorting, Grouping, And Filtering

June 24, 2021 125 Views

When it comes to displaying information there are few JavaScript components as important, or as useful as the Grid. It is one of the primary tools developers use to display, and, more importantly, allow users to view, sort, and interact with large data sets.

As a tool, JavaScript Grids allow developers to modernize and accelerate business processes by simplifying the way their users work with data. Grids allow us to render large sets of information without lagging or freezing. They also help considerably reduce the amount of time we spend managing our data.

In this article, we will show you how to improve your JavaScript Grid with sorting, grouping, and filtering using Sencha Ext JS. Now, let’s dive in.

What is Sencha Ext JS?

Sencha Ext JS is a powerful framework for developing cross-platform web and mobile applications. It supports over 150 UI elements, including grids, pivot grids, and D3 adapters. It helps you to develop data-intensive apps quickly and conveniently.

How can I Turbocharge my JavaScript Grids with Sorting?

One of the reasons the grids are so necessary is that they allow us to determine exactly how data is viewed. With Ext JS Grids, your options are almost unlimited — you can sort your data either by configuration or under program control. You also can perform both single-column and multi-column sorting.

Here is an example of single-column sorting:

Add Single Column Sorting with Ext JS

To create the sorting shown above, you have to follow these steps:

1. First, you have to specify the view of the app. Then extend Grid, and specify title and items.

Ext.define('MyApp.view.Main', {

extend: 'Ext.grid.Grid',

title: 'Reykjavik Flight Departures',

items: [{

    docked: 'top',

    xtype: 'toolbar',

    items: [{

        text: 'Sort on destination',

        handler: function(button){

            // Sort under program control

            button.up('grid').getStore().sort('to');

        }

    }]

}],

2. Next, you have to sort the data via configuration.

store: {

 

    // Sort via store configuration

    sorters: [{

        property: 'airline'

    }],

 

    type: 'store',

    autoLoad: true,

    fields: [{name: 'date',type: 'date',dateFormat: 'j. M'}],

    proxy: {type: 'ajax',url: 'departures.json',reader: {rootProperty: 'results'}}

},

3. Then you have to define the columns. For more information on how to do this check the source code.

4. Finally, add this code:

Ext.application({

name: 'MyApp',

mainView: 'MyApp.view.Main'

});

Source Code:

You can play with the code on Fiddle.

Next, let’s look at multiple-column sorting. All you have to do to achieve this is add multiple sorters via configuration. Here is an example:

Sorting on multiple columns using the Ext JS Grid

Source Code:

You can find the source code right here.

How can I Turbocharge my JavaScript Grids with Grouping?

Grids have a grouped config that allows you to conveniently group columns. Here is an example of how to make it happen:

To create the grouping shown above, simply follow these steps:

1. Specify the view of the app and title. Also, extend the Grid.

Ext.define('MyApp.view.Main', {

    extend: 'Ext.grid.Grid',

    title: 'Reykjavik Flight Departures',

2. Set grouped to true.

grouped: true,

3. Now, you have to specify the columns. You can find everything on the source code.

4. Next, you have to define the store.

store: {

        type: 'store',

        autoLoad: true,

        fields: [{name: 'date',type: 'date',dateFormat: 'j. M'}],

        proxy: {type: 'ajax',url: 'departures.json',reader: {rootProperty: 'results'}}

    }

    });

5. Then add this code:

    Ext.application({

    name: 'MyApp',

    mainView: 'MyApp.view.Main'

    });

Source Code:

You can find the source code at Fiddle.

How can I Turbocharge my JavaScript Grids with Filtering?

With the grid filters plugin, you can filter data based on a given input. Here is an example:

Add filtering to your Ext JS grid

To create the filtering functionality shown above, you have to follow these steps:

1. First, specify the view of the app and title. Also, extend Grid.

2. Set gridfilters to true.

plugins: {

    gridfilters: true

},

3. Create a function for clearing the filters.

onClearFilters: function(){

    this.getStore().clearFilter();

},

4. Next, you have to add columns. You can find all the details in the source code.

5. Define store. Set autoLoad to true.

store: {

    type: 'store',

    autoLoad: true,

    fields: [{name: 'date',type: 'date',dateFormat: 'j. M'}],

    proxy: {type: 'ajax',url: 'departures.json',reader: {rootProperty: 'results'}}

}

 

});

6. Finally, add this code:

Ext.application({

name: 'MyApp',

mainView: 'MyApp.view.Main'

});

Source Code:

You can play with the code right here.

Are you ready to get started modernizing your grids?

That’s how you modernize your JavaScript grids with Sorting, Grouping, and Filtering. We will cover more ways of turbocharging grids in the upcoming posts. So, do not forget to check our website regularly.

Sencha Ext JS is a feature-rich JavaScript library for building data-intensive web applications for all modern devices, including PCs, smartphones, and tablets. Try it now for free.

Show
Start building with Ext JS today

Build 10x web apps faster with 140+ pre-build components and tools.

Latest Content
Discover the Top 07 Architecture Patterns used in Modern Enterprise Software Development
Discover the Top 07 Architecture Patterns used in Modern Enterprise Software Development

Developing software without an architecture pattern may have been an option back then. However, that’s…

JavaScript Design Patterns: A Hands-On Guide with Real-world Examples
JavaScript Design Patterns: A Hands-On Guide with Real-world Examples

As a web developer, you know how popular JavaScript is in the web app development…

Virtual JS Days 2024のハイライト
Virtual JS Days 2024のハイライト

2024年2月20日~22日、第3回目となる「Virtual JavaScript Days」が開催されました。JavaScript の幅広いトピックを採り上げた数多くのセッションを実施。その内容は、Senchaの最新製品、ReExt、Rapid Ext JSまで多岐にわたり、JavaScriptの最新のサンプルも含まれます。 このカンファレンスでは多くのトピックをカバーしています。Senchaでセールスエンジニアを務めるMarc Gusmano氏は、注目すべきセッションを主催しました。Marc は Sencha の最新製品「ReExt」について、詳細なプレゼンテーションを実施。その機能とメリットを、参加者に理解してもらうべく詳細に説明しました。 カンファレンスは、Senchaのジェネラルマネージャを務めるStephen Strake氏によるキーノートでスタートしました。キーノートでは、会社の将来のビジョンについての洞察を共有しています。世界中から JavaScript 開発者、エンジニア、愛好家が集まるとてもエキサイティングなイベントとなりました。これは、JavaScript…

See More