We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. (Last updated on: June 24, 2019).
Unfortunately, activation email could not send to your email. Please try again.
Syncfusion Feedback

Calling accumulationcharts "again" wont work

Thread ID:

Created:

Updated:

Platform:

Replies:

145411 Jun 20,2019 09:39 AM UTC Jun 21,2019 12:45 PM UTC JavaScript - EJ 2 1
loading
Tags: DashboardLayout
Laurens Albers
Asked On June 20, 2019 09:39 AM UTC

Hi,

I have a dashboard with different panels, Maps, AccumulationChart and Charts (all angular packages btw -> @syncfusion/ej-angular-xxxx)
But for creating the "content" in the panels, i'm creating a new class referring to the id, based upon the "javascript&TypeScript" variant.
 let chart1 = new Chart( etc....
let chart2 = new Maps( etc...
let chart3 etc..

This works fine, but when calling new AccumulationChart a second time(same code) this wont "generate/appear". The other components work fine.

calling this twice

//put the following  it under some button and call it twice, first time it will generate just fine, after that it wont.
TS
    let chart2 = new AccumulationChart({
      series: [
        {
          innerRadius: "0%",
          radius: "100%",
          dataSource: this.pieData,
          xName: 'x',
          yName: 'y',
          dataLabel: { visible: false }
        }
      ],
    },
      '#element2');

pieData: object[] = [
    { x: 'Jan', y: 15, text: 'Jan: 3' }, { x: 'Feb', y: 20, text: 'Feb: 3.5' },
    { x: 'Mar', y: 15, text: 'Mar: 7' }, { x: 'Apr', y: 13.5, text: 'Apr: 13.5' },
    { x: 'May', y: 19, text: 'May: 19' }, { x: 'Jun', y: 23.5, text: 'Jun: 23.5' },
    { x: 'Jul', y: 26, text: 'Jul: 26' }, { x: 'Aug', y: 25, text: 'Aug: 25' },
    { x: 'Sep', y: 21, text: 'Sep: 21' }, { x: 'Oct', y: 15, text: 'Oct: 15' },
    { x: 'Nov', y: 15, text: 'Nov: 9' }, { x: 'Dec', y: 17, text: 'Dec: 35' }
  ];



HTML

  <ejs-dashboardlayout id='dashboardLayout' #dashLayout [cellSpacing]='cellSpacing'
                           [columns]="6"
                           [cellAspectRatio]='aspectRatio'
                           [panels]="panels">
        <e-panels>
          <e-panel [sizeX]="2" [sizeY]="2" [row]="0" [col]="2">
            <ng-template #header>
              <div style="float: left">{{panel2}}</div>
              <div style="float: right">
                <button style="margin-right: -10px; margin-top: -20px" class="mat-settings-button" mat-icon-button (click)="openDialog(1)">
                  <mat-icon>settings</mat-icon>
                </button>
                <button style="margin-right: -20px; margin-top: -20px" class="mat-settings-button" mat-icon-button (click)="remove('Panel1')">
                  <mat-icon>clear</mat-icon>
                </button>
              </div>
            </ng-template>
            <ng-template #content>
              <div class="setBody" id="element2"></div>
            </ng-template>
          </e-panel>



The question: Any idea why this is/could be happening??
My goal is replacing the contents of the panels depending on the users settings, which means i could/will call accumulationcharts more than once.


code like the following work just fine repeatedly.
TS
    let chart1 = new Chart({
      primaryXAxis: this.primaryXAxis,
      series: [
        {
          type: 'Line',
          dataSource: this.chartData,
          xName: 'month',
HTML
          <e-panel [sizeX]="2" [sizeY]="2" [row]="0" [col]="0">
            <ng-template #header>
              <div style="float: left">{{panel1}}</div>
              <div style="float: right">
                <button style="margin-right: -10px; margin-top: -20px" class="mat-settings-button" mat-icon-button (click)="openDialog(1)">
                  <mat-icon>settings</mat-icon>
                </button>
                <button style="margin-right: -20px; margin-top: -20px" class="mat-settings-button" mat-icon-button (click)="remove('Panel1')">
                  <mat-icon>clear</mat-icon>
                </button>
              </div>
            </ng-template>
            <ng-template #content>
              <div class="setBody" id="element1"></div>
            </ng-template>
          </e-panel>
          yName: 'sales',
          name: 'Sales'
        }
      ],
    },
      '#element1');

Using:
TypeScript 3+, Angular 7+, Angular Material

    "@syncfusion/ej2-angular-charts": "^17.1.50",






Christopher Issac Sunder K [Syncfusion]
Replied On June 21, 2019 12:45 PM UTC

Hi Laurens, 

We checked your reported query – “Calling accumulation charts again not working”. You can resolve this issue by any of the below methods, 

Method – 1: “Chart’s refresh method” 
 
After re-rendering the accumulation chart call its refresh method, 

renderPieChart() { 
    let chart2 = new AccumulationChart({ 
        series: [ 
            { 
                innerRadius: "0%", 
                radius: "100%", 
                dataSource: this.pieData, 
                xName: 'x', 
                yName: 'y', 
                dataLabel: { visible: false } 
            } 
        ], 
    }, 
        '#element2'); 
    chart2.refresh(); 
} 

We have prepared a sample based on this for your reference. Please find it below, 


Method – 2: “Remove the chart container element before re-rendering it” 
 
Remove the accumulation chart container element and then re-render it, 

renderPieChart() { 
    document.getElementById('element2').innerHTML = ''; 
    let chart2 = new AccumulationChart({ 
        series: [ 
            { 
                innerRadius: "0%", 
                radius: "100%", 
                dataSource: this.pieData, 
                xName: 'x', 
                yName: 'y', 
                dataLabel: { visible: false } 
            } 
        ], 
    }, 
        '#element2'); 
} 

We have prepared a sample based on this for your reference. Please find it below, 


Let us know if you have any concerns. 

Thanks,
Christo 


CONFIRMATION

This post will be permanently deleted. Are you sure you want to continue?

Sorry, An error occured while processing your request. Please try again later.

Please sign in to access our forum

This page will automatically be redirected to the sign-in page in 10 seconds.

Warning Icon You are using an outdated version of Internet Explorer that may not display all features of this and other websites. Upgrade to Internet Explorer 8 or newer for a better experience.Close Icon

Live Chat Icon For mobile
Live Chat Icon