Missed JavaScript Days 2026? The Replays Are Now Available – Watch Now!

How to Quickly Customize Ext JS Data Grid (Part 5/6) – Widget Column Methods

March 27, 2020 4105 Views

Get a summary of this article:

Show

Widgets are cool. They add a nice functional and visual cue to an already robust and intuitive data grid. With ExtJS, adding widgets to grids is quick and easy. The Ext JS component widgets are interoperable (unlike other open source components hand-picked from different sources), so you’ll never face any compatibility, performance or other issues adding them.

Let’s look into how widget column methods can be used to customize grid data.
The example grid used throughout the blog series displays NBA 2020 player ratings.

Widgetcolumn [classic]

With widget column, you can customize how to display data using the following components:

  • Button
  • Progress bar
  • Slider
  • Line
  • Bar

Grid Widget Column

This is how the initial data is setup:

{
            player: 'Kemba Walker',
            team: 'Boston Celtics',
            rating: 88,
            dunkRating: 30,
            threePointRating: 83,
            position: 'PG',
            ht: 60,
            salary : 32742000,
            twoPointPercent: 0.48,
            threePointPercent: 0.38,
            scoringEvolution : [12,17,17,17,21,23,22,25,22],
            plusMinusEvolution2020 : [-16,7,13,8,4,0,20,21,18,-4,2,0,22,-8,-9,4,-10,7,16]
    	},
    	{
            player: 'Jayson Tatum',
            team: 'Boston Celtics',
            rating: 86,
            dunkRating: 83,
            threePointRating: 90,
            position: 'SF',
            ht: 68,
            salary:7830000,
            twoPointPercent: 0.47,
            threePointPercent: 0.37,
            scoringEvolution : [14,15,22],
            plusMinusEvolution2020 : [-4,9,20,16,12,9,13,23,16,14,6,12,8,-6,-23,4,11,13,11,31]
    	}
 

Define widget in column configuration ‘widgetcolumn’. Here we have a slider and a sparkline widget.

{
    	text: '2PT%',
    	xtype: 'widgetcolumn',
    	width: 120,
    	widget: {
            xtype: 'sliderwidget',
            minValue: 0,
            maxValue: 1,
            bind: '{record.twoPointPercent}',
            publishOnComplete: false,
            decimalPrecision: 2
    	}
},
{
    	text: 'Scoring evolution',
    	flex: 1,
    	xtype: 'widgetcolumn',
    	widget: {
            xtype: 'sparklineline',
            bind: '{record.scoringEvolution}',
            tipTpl: 'Value: {y:number("0.00")}'
    	}
}

Widget is bound to ‘record’ and it is possible to customize data display with ‘texTpl’ and ‘tipTpl’.

Sencha Fiddle:

The Ext JS component library contains over 100 components that can be integrated into your application. For example, you can use a slider, line, bar, bullet, pie, box chart and many more within the grid cell. To see what’s possible, check out some more widget examples.

The Stock Ticker is another example that shows how you can use a line chart and slider to provide live stock price updates.

Stay tuned for our next article covering ‘How to add Custom CSS to Grid Elements.’


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.

Author

Kirti Joshi

Kirti Joshi is long time techie and has worked at a number of companies delivering cutting-edge hardware and software products. She currently works as a Product Marketing Manager at Sencha and is passionate about technology products that improve human life.

Recommended Articles

How to Use Tailwind CSS v4 in Ext JS (Classic) Without Breaking the Theme

We know that Ext JS is a war tank. When it comes to handling absurd volumes of data and complex front-end architectures, few frameworks come…

How to Use the Ext JS Grid in React: Setup, Columns, Editing and Grouping

Set up the Ext JS grid in React with ReExt, then add typed columns, store-backed data, inline editing, grouping and summaries. Full code included. The…

Understanding Ext JS Layouts and Containers: An Introduction (Classic vs. Modern)

Building complex, responsive, and data-intensive Web applications requires a solid layout engine. In Ext JS, the layout system is the backbone of your Application UI.…

AI-Driven Test Grading with Ext JS, Node.js, and OpenAI: A Secure Enterprise Architecture

Learn how to build an AI-driven test grading system with Ext JS, Node.js, MySQL, and OpenAI using secure API architecture, deterministic scoring, and human oversight.…

Sencha AI Just Got a Lot Bigger: One Chatbot, Every Sencha Product

Sencha’s AI assistant has grown from a focused Ext JS helper into a product-aware chatbot covering the whole Sencha suite. Here’s what’s new and why…

Building High-Performance Real-Time Operational Dashboards with Ext JS and React

Real-time operational dashboards are no longer simply reporting interfaces. In logistics, fleet management, supply chain operations, financial services, and other data-intensive environments, they are part…

View More