New to Kendo UI for jQuery? Download free 30-day trial

    Show Overlay while the Chart Is Loading

    Environment

    Product Progress® Kendo UI® Chart for jQuery
    Operating System Windows 10 64bit
    Visual Studio Version Visual Studio 2017
    Preferred Language JavaScript

    Description

    Sometimes the loading of my Chart takes longer time than the user expects. How can I set an overlay for the Chart while it is loading?

    Solution

    For such scenarios, you can configure the Kendo UI Chart to show the progress of the process.

    The following example demonstrates how to display a loading indicator while the data of a Kendo UI Chart is loading. The loading indicator is cleared in the render event.

    For Kendo UI versions prior to 2014.3.1119, replace it with the dataBound event.

    Open In Dojo
        <div class="chart-wrap" style="position: relative;">
          <div id="chart"></div>
          <div class="chart-loading"></div>
        </div>
        <script>
          var ds = new kendo.data.DataSource({
            transport: {
              read: function(e) {
                // Delay response to simulate remote data
                setTimeout(function() {
                  e.success([{
                    value: 1
                  }, {
                    value: 2
                  }, {
                    value: 3
                  }]);
                }, 2000);
              }
            }
          });
    
          $("#chart").kendoChart({
            dataSource: ds,
            series: [{
              field: "value"
            }],
            render: function(e) {
              // Clear up the loading indicator for this chart
              var loading = $(".chart-loading", e.sender.element.parent());
              kendo.ui.progress(loading, false);
            }
          });
    
          $(document).ready(function() {
            // Spin all loading indicators on the page
            kendo.ui.progress($(".chart-loading"), true);
          });
        </script>