Load accordion with data source in EJ2 JavaScript Accordion control
2 May 20233 minutes to read
You can bind any data object to Accordion items, by mapping it to header
and content
property.
In the below demo, Data is fetched from an OData
service using DataManager
. The result data is formatted as a JSON object with header
and content
fields, which is set to items property of Accordion.
var itemsData = [];
var mapping = { header: 'FirstName', content: 'Notes' };
const SERVICE_URI = 'https://services.odata.org/V4/Northwind/Northwind.svc/Employees';
new ej.data.DataManager({ url: SERVICE_URI, adaptor: new ej.data.ODataV4Adaptor, crossDomain: true})
.executeQuery(new ej.data.Query().range(1, 4)).then(function (e) {
var result = e.result;
for(var i = 0; i < result.length; i++) {
itemsData.push({ header: result[i][mapping.header], content: result[i][mapping.content] });
}
//Initialize Accordion component
var accordion = new ej.navigations.Accordion({
items: itemsData
});
//Render initialized Accordion component
accordion.appendTo('#element');
});
<!DOCTYPE html><html lang="en"><head>
<title>Essential JS 2 Accordion</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Typescript Toolbar Controls">
<meta name="author" content="Syncfusion">
<link href="index.css" rel="stylesheet">
<link href="https://cdn.syncfusion.com/ej2/23.2.4/material.css" rel="stylesheet">
<script src="https://cdn.syncfusion.com/ej2/23.2.4/dist/ej2.min.js" type="text/javascript"></script>
<script src="https://cdn.syncfusion.com/ej2/syncfusion-helper.js" type ="text/javascript"></script>
</head>
<body>
<div id="container">
<div id="element"></div>
<br><br>
<div id="result"></div>
</div>
<script>
var ele = document.getElementById('container');
if(ele) {
ele.style.visibility = "visible";
}
</script>
<script src="index.js" type="text/javascript"></script>
</body></html>