Your search did not match any results.
Accordion

Accordion

Documentation

The Accordion component contains several panels displayed one under another. These panels can be collapsed or expanded by a user, which makes this component very useful for presenting information in a limited amount of space.

Backend API
Copy to CodePen
Apply
Reset
$(() => { DevExpress.setTemplateEngine('underscore'); const tagBox = $('#tagbox').dxTagBox({ dataSource: accordionItems, displayExpr: 'CompanyName', disabled: true, value: [accordionItems[0]], onValueChanged(e) { accordion.option('selectedItems', e.value); }, }).dxTagBox('instance'); const accordion = $('#accordion-container').dxAccordion({ dataSource: accordionItems, animationDuration: 300, collapsible: false, multiple: false, selectedItems: [accordionItems[0]], itemTitleTemplate: $('#title'), itemTemplate: $('#customer'), onSelectionChanged(e) { tagBox.option('value', e.component.option('selectedItems')); }, }).dxAccordion('instance'); $('#slider').dxSlider({ min: 0, max: 1000, value: 300, label: { visible: true }, tooltip: { enabled: true, position: 'bottom', }, onValueChanged(e) { accordion.option('animationDuration', e.value); }, }); $('#multiple-enabled').dxCheckBox({ text: 'Multiple enabled', onValueChanged(e) { accordion.option('multiple', e.value); tagBox.option('disabled', !e.value); tagBox.option('value', accordion.option('selectedItems')); }, }); $('#collapsible-enabled').dxCheckBox({ text: 'Collapsible enabled', onValueChanged(e) { accordion.option('collapsible', e.value); }, }); });
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>DevExtreme Demo</title> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script>window.jQuery || document.write(decodeURIComponent('%3Cscript src="js/jquery.min.js"%3E%3C/script%3E'))</script> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/21.2.5/css/dx.common.css" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/21.2.5/css/dx.light.css" /> <script src="https://cdn3.devexpress.com/jslib/21.2.5/js/dx.all.js"></script> <script src="js/underscore.js"></script> <script src="data.js"></script> <link rel="stylesheet" type="text/css" href="styles.css" /> <script src="index.js"></script> </head> <body class="dx-viewport"> <div class="demo-container"> <div id="accordion"> <div id="accordion-container"> </div> <div class="selected-data"> <span class="caption">Selected Items</span> <div id="tagbox"></div> </div> <div class="options"> <div class="caption">Options</div> <div class="option"> <div id="multiple-enabled"></div> </div> <div class="option"> <div id="collapsible-enabled"></div> </div> <div class="option"> <span>Animation duration</span> <div id="slider"></div> </div> </div> </div> <script type="text/html" id="title"> <h1><%= CompanyName%></h1> </script> <script type="text/html" id="customer"> <div class="accodion-item"> <div> <p> <b><%= City%></b> (<span><%= State%></span>) </p> <p> <span><%= Zipcode%></span> <span><%= Address%></span> </p> </div> <div> <p> Phone: <b><%= Phone%></b> </p> <p> Fax: <b><%= Fax%></b> </p> <p> Website: <a href="<%= Website%>" target="_blank"> <%= Website%> </a> </p> </div> </div> </script> </div> </body> </html>
#accordion h1 { font-size: 20px; } #accordion h1, #accordion p { margin: 0; } .dx-theme-material #accordion .dx-accordion-item-title { display: flex; } .dx-theme-material #accordion h1 { align-self: center; } .options, .selected-data { padding: 20px; background-color: rgba(191, 191, 191, 0.15); margin-top: 20px; } .selected-data { position: relative; height: 36px; } .selected-data > .caption { position: relative; top: 5px; margin-right: 10px; font-weight: bold; font-size: 115%; } .selected-data > .dx-widget { position: absolute; left: 140px; right: 20px; top: 20px; } .options > .caption { font-weight: 500; font-size: 18px; } .option { margin-top: 10px; }
const accordionItems = [{ ID: 1, CompanyName: 'Super Mart of the West', Address: '702 SW 8th Street', City: 'Bentonville', State: 'Arkansas', Zipcode: 72716, Phone: '(800) 555-2797', Fax: '(800) 555-2171', Website: 'http://www.nowebsitesupermart.com', }, { ID: 2, CompanyName: 'Electronics Depot', Address: '2455 Paces Ferry Road NW', City: 'Atlanta', State: 'Georgia', Zipcode: 30339, Phone: '(800) 595-3232', Fax: '(800) 595-3231', Website: 'http://www.nowebsitedepot.com', }, { ID: 3, CompanyName: 'K&S Music', Address: '1000 Nicllet Mall', City: 'Minneapolis', State: 'Minnesota', Zipcode: 55403, Phone: '(612) 304-6073', Fax: '(612) 304-6074', Website: 'http://www.nowebsitemusic.com', }, { ID: 4, CompanyName: "Tom's Club", Address: '999 Lake Drive', City: 'Issaquah', State: 'Washington', Zipcode: 98027, Phone: '(800) 955-2292', Fax: '(800) 955-2293', Website: 'http://www.nowebsitetomsclub.com', }];