Wijmo 5: A New Generation of JavaScript Controls

Deliver next-generation HTML5 applications with Wijmo 5, a collection of true JavaScript controls that doesn't make compromises to support legacy browsers. With touch-first design and full Angular support, these highly performant, lightweight controls will blow you away with their power and flexibility.

Download Free Trial (v 5.20161.164)

Already purchased Wijmo? Download it here.

What is Wijmo 5?

Wijmo 5 is a new generation of JavaScript controls. We decided it was time to launch an HTML5/JavaScript product taking full advantage of the latest and greatest technologies, and no longer make compromises in order to support legacy browsers.

Thomson Reuters
“With Wijmo’s extensibility model, the Microsoft Dynamics team was able to quickly customize and incorporate Wijmo 5 controls into our new release.”

— Param Kahlon, General Manager, Microsoft Dynamics CRM Engineering

Read more about Microsoft Dynamics and Wijmo 5

Introducing Wijmo 5

What’s Included


Why Wijmo 5?

Touch-First, Mobile-First

Wijmo 5 was designed with mobile browser support built in from the start. Responsive layouts and touch support were major factors in the design and implementation of every Wijmo 5 control.

Touch-First, Mobile-First

First Class Angular 1 and 2 Support

First Class Angular 1 and 2 Support

Wijmo’s Explorer Fully Supports the Angular 2. Read more.

AngularJS is one of the most popular and powerful JavaScript application frameworks today. With the development of Angular 2, it continues to set the direction of the next Web. For this reason, we ship and maintain AngularJS directives for all of our controls, and use it in most of our samples. Of course, you can also use Wijmo with other frameworks. We provide official support for KnockoutJS and will consider others in the future.

True JavaScript Controls

The ECMAScript 5 standard adds support for property getters and setters. This may seem like a small change, but it makes a huge difference. It has given us the opportunity to create true JavaScript controls. For example, instead of writing control.value(control.value() + 1) to increment the value of a property, now you can write control.value++.

We wanted to provide a familiar experience for .NET developers migrating to HTML5. For this reason we have also created ICollectionView in JavaScript. All of the Wijmo 5 controls can be bound to CollectionView, giving developers a very easy migration path from the .NET platform.

True JavaScript Controls

Built on TypeScript

Built on TypeScript

Large-scale, client and server side applications are possible with Wijmo 5. We built on TypeScript for a better coding experience, and to give an object-oriented, C#-like feel to working with Wijmo 5. Full support for TypeScript means that you’ll have Intellisense and design-time error checking, making your work easier. Of course, we want to be flexible for you, so if you prefer JavaScript, you can work in Wijmo 5 in its JavaScript form.

Highly Performant and Lightweight

With Wijmo 5 we had an opportunity to completely rethink and rewrite our controls. We have chosen to target modern browsers and this has enabled us to create the fastest and most lightweight controls in the market. Every control is optimized for size and speed. Plus, Wijmo 5 has no dependencies on any external libraries. It does not require jQuery, jQueryUI, or anything else. Create applications that load faster and are easier to deploy!

Highly Performant and Lightweight

Flexible API

Flexible API

It’s in the name! You may remember our famous FlexGrid from any number of platforms, even as far back as VB. We are bringing our “Flex” model and FlexGrid to JavaScript. FlexGrid became incredibly popular because it has a simple and yet very flexible API. The concept is to develop a simple control that has many extensibility points so that developers can extend and enhance it as they need. This is what makes FlexGrid and FlexChart so flexible and powerful.



Browse, search, view source code and run all of our samples using the Wijmo 5 Sample Explorer.

Launch Sample Explorer




Shows how to use all the controls in Wijmo 5, as well as the infrastructure shared by all the controls.


FlexGrid 101

Shows how to perform common tasks with FlexGrid, our fast and flexible data-bound grid control.


FlexChart 101

Shows how to perform common tasks with FlexChart, our beautiful and easy-to-use chart control.


Input 101

Shows how to perform common tasks with all the Input controls in Wijmo 5.


Gauge 101

Shows how to get started with LinearGauge and RadialGauge, our smart and flexible gauge controls.


FlexPie 101

Shows how to get started with FlexPie, our flexible pie chart control.


CollectionView 101

Shows how to get started with CollectionView, our .NET-like class that uses regular JavaScript arrays as data sources.

What Our Customers Say

Thomson Reuters
“We rely on functionality of Wijmo 5’s FlexGrid in our massive next-generation platform products. Wijmo’s modern, full-featured FlexGrid with sophisticated grid manipulations is what you will find at the heart of our workflow.”

— Aaron Mendez, Manager of User Experience, Thomson Reuters

“We purchased Wijmo and their team is doing a great job: good-looking, well-thought-out architecture; documentation; keeping up with ever-changing landscape like no others.”

— BJ Jeong, Cisco

What’s New

What’s New in Build 164

  • Angular 2: refined component initialization functionality.
  • Improved FlexGrid.stickyHeaders property to work within nested scrollable container elements, improved StickyHeaders sample to demonstrate this and how to add sticky toolbars to the grid. FlexGrid StickyHeaders Sample | Sticky Headers Blog
  • Added SimpleReports sample. Simple Reports Sample | Simple Reports Blog
  • Added DynamicDashboard sample. Dynamic Dashboard Sample
  • Added Popup.dialogResult and Popup.dialogResultEnter properties to make it easier to create and handle modal dialogs. Popups Sample
  • Added wijmo.grid.multirow extension module. Contains the MultiRow control that extends conventional grid layouts by using multiple rows to represent each data item. MultiRow Intro Sample
  • Added a Gauge.getText callback property used to customize text values shown on gauges. This new property is shown in the GaugeIntro sample: Gauge Intro Sample
  • Added FlexGrid.updatingLayout and updatedLayout events.
  • Added a FlexGrid.updatingView event to match FlexGrid.updatedView.
  • Addled a ValueFilter.sortValues property that allows users to specify that they don’t want the values to be sorted when displayed in the filter editor.
  • Improved focus handling to work with controls hosted in “shadowRoot” elements (see the wijmo.getActiveElement() method).
  • Added style property for WorkSheet class, user is able to set the style for all the cells in the Worksheet for exporting.
  • Added PivotGrid.showRowFieldSort property. See this thread for details.
  • Added MultiSelect.checkedItems property to Angular directives.
  • The Angular 2 samples missed in build 153 have been ported to RC.1
  • Wijmo for Angular 2 components adapted to Angular 2 RC.1

Breaking Changes

  • Angular 2: bound events are triggered during component initialization now; before now they started to trigger after a component got to ngOnInit lifecycle hook.
  • The CollectionView.moveCurrentToPrevious method used to allow moving the cursor to position -1. Now it stops moving when the cursor reaches the first item (position zero). This was done for two reasons: 1) To make the method more convenient to use in typical first/prev/next/last VCR-style navigation buttons (the ‘prev’ button can now be linked to moveCurrentToPrevious without any additional tests), and 2) To improve consistency with the moveCurrentToNext method, which stopped at the last item in the collection.

View Changelog History