JS Days 2025 is now live – Join 5,000+ devs for the premier virtual JavaScript event. Register Now

How to Quickly Customize Ext JS Data Grid (Part 4/6) – Using Flexible Methods

March 19, 2020 2652 Views
Show

In this fourth article of the 6-part “Ext JS Grid Customization” blog series, we focus on using flexible methods to customize grid data. If you missed reading the previous posts, take a quick read here:
Customize using Built-in Grid and Column Properties
Customize using Grouping Methods
Customize using Row Editing Methods

Ext JS provides flexible methods to customize data. The example here shows a grid with a sample NBA 2020 player ratings data.

For example, if we want to display the height of the player in the correct format (ft and inches) or format the salary (with the correct thousands separator), we can do this within the Renderer method or use the formatter property.

This is how the initial data is setup:

data: [{
            player: 'Kemba Walker',
            team: 'Boston Celtics',
            rating: 88,
            dunkRating: 30,
            threePointRating: 83,
            position: 'PG',
            ht: 60,
            salary : 32742000
    	}, {
            player: 'Jayson Tatum',
            team: 'Boston Celtics',
            rating: 86,
            dunkRating: 83,
            threePointRating: 90,
            position: 'SF',
            ht: 68,
            salary:7830000
    	}, {
            player: 'Jaylen Brown',
            team: 'Boston Celtics',
            rating: 85,
            dunkRating: 82,
            threePointRating: 85,
            position: 'SG',
            ht: 66,
            salary:6534829
    	}, {
            player: 'Gordon Hayward ',
            team: 'Boston Celtics',
            rating: 82,
            dunkRating: 81,
            threePointRating: 75,
            position: 'PG',
            ht: 67,
            salary: 32700690
    	}, {
            player: 'Marcus Smart',
            team: 'Boston Celtics',
            rating: 82,
            dunkRating: 74,
            threePointRating: 50,
            position: 'SG',
            ht: 63,
            salary: 12553471
    	}]

We want to format the height and salary of the players. Here’s how we expect them after customization.

Grouped Grid

How to change the format of the player height view?

The “Renderer” method is used to transform data before it is rendered.
Override “renderer” method in column configuration:

    {
    	dataIndex: 'ht',
    	text: 'Height',
    	flex: 1,
    	renderer: function(value) {
            let height = value.toString();
            return height.substring(0, 1) + '\'' + height.substring(1, 2) + '"';
    	}
    }

How to change the formatting of the salary values?

Formatter can use Ext.util.Format methods directly in configuration.
Use “formatter” property in column configuration :

  {
        dataIndex: 'salary',
        formatter: 'usMoney',
        text: 'Salary',
        flex: 1
  }

Sencha Fiddle:

Processing Data and Customizing Rendered Values

Ext.Template or XTemplate can be used to process grid data and customize the rendered values.

Specific column type
It is possible to use specific column to display specific data types :

{
        xtype: 'numbercolumn',
        dataIndex: 'salary',
        text: 'Salary',
        flex: 1
},  {
        xtype: 'booleancolumn',
        dataIndex: 'lastYearContract',
        text: 'Is last year contract',
        trueText: 'Yes',
        falseText: 'No',
        flex: 1
    }

Sencha Fiddle:

Stay tuned for our next article covering ‘How to use Widget Column Methods to Customize Your Grid’

 

Build Your Data Grid with Ext JS 7.1

The free 30-day trial of Ext JS 7.1 provides full access to the product features. Get started today and see how you can build a high-performing data grid for your application.

Recommended Articles

Guide to Estimating ROI When Switching From DIY Libraries to Full Software Development Platforms Like Ext JS

Teams started with Do It Yourself, or DIY, JavaScript tools like jQuery and Bootstrap. But those fall apart as projects scale. Scattered code, user interface…

Top Frameworks Developers Are Using for Custom Software Development in 2025

We’re seeing it more every year; teams aren’t settling for plug-and-play tools anymore. In healthcare, finance, logistics, and other data-heavy industries, there’s a clear shift.…

Meet Sencha AI Coding Companion: Your AI-Powered Assistant for Faster Ext JS Development

Building modern web applications should be exciting. But too often, developers find themselves buried in documentation, endlessly Googling framework quirks, or stuck solving the same…

Ext JS 7.9 & Rapid Ext JS V1.1 Have Arrived

The Sencha team is excited to announce the latest Ext JS version 7.9 and Rapid Ext JS 1.1 release – designed to accelerate development, enhance…

Top 10 JS Grid Customization Tips for a Better UI Experience

Grids are pretty much everywhere in web apps. Working with financial sheets, product details, or users? Then you’ve probably used a JavaScript grid. It makes…

Why Ext JS Framework is the Go-To Framework for Building Scalable and Data-Intensive Web Apps

Web apps are much more advanced now. They deal with large amounts of data and need to stay fast, even with many users. If you’re…

View More

Trusted by Top Developers: Learn how to enhance your development journey — for free

Get the latest newsletter keeping thousands of developers in the loop.

Loved by developers at