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.