DevExtreme DataSource
To get the DataSource instance, call the Funnel's getDataSource() method:
jQuery
function getDataSource() { return $("#funnelContainer").dxFunnel("getDataSource"); }
Angular
import { Component, ViewChild } from '@angular/core'; import { DxFunnelComponent } from 'devextreme-angular'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { @ViewChild(DxFunnelComponent, { static: false }) funnel: DxFunnelComponent; // Prior to Angular 8 // @ViewChild(DxFunnelComponent) funnel: DxFunnelComponent; getDataSource() { return this.funnel.instance.getDataSource(); } }
import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { AppComponent } from './app.component'; import { DxFunnelModule } from 'devextreme-angular'; @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, DxFunnelModule ], providers: [ ], bootstrap: [AppComponent] }) export class AppModule { }
Vue
<template> <DxFunnel :ref="funnelRefKey"> <!-- ... --> </DxFunnel> </template> <script> import DxFunnel from 'devextreme-vue/funnel'; const funnelRefKey = "my-funnel"; export default { components: { DxFunnel }, data() { return { funnelRefKey } }, methods: { getDataSource: function() { return this.funnel.getDataSource(); } }, computed: { funnel: function() { return this.$refs[funnelRefKey].instance; } } } </script>
React
import { useRef } from 'react'; import Funnel from 'devextreme-react/funnel'; export default function App() { const funnel = useRef(null); const getDataSource = () => { return funnel.current.instance().getDataSource(); } return ( <Funnel ref={funnel}> {/* ... */} </Funnel> ); }
Then, access the underlying store with the store() method, and call the store's push(changes) method to modify data. The Funnel will be updated automatically.
getDataSource().store().push([ { type: "update", key: "Oranges", data: { count: 10 } }, { type: "remove", key: "Apples" } ]);
See Also
jQuery
Make changes to the array using standard methods. Then, reassign the updated array to the Funnel using the option(optionName, optionValue) method.
var fruits = [ { fruit: 'Apples', count: 10 }, { fruit: 'Oranges', count: 12 }, { fruit: 'Lemons', count: 15 } ]; fruits.push({ fruit: 'Pineapples', count: 3 }); // Reassigns the "fruits" array to the Funnel $("#funnelContainer").dxFunnel("option", "dataSource", fruits);
See Also
If you have technical questions, please create a support ticket in the DevExpress Support Center.