UNPKG

jqwidgets-framework

Version:

jQWidgets is an advanced Angular, Vue, Blazor, React, Web Components, jquery, ASP .NET MVC, Custom Elements and HTML5 UI framework.

114 lines (108 loc) 5.28 kB
<!DOCTYPE html> <html> <head> <title>Grid Order Details</title> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="../../../jqwidgets/styles/jqx.base.css" type="text/css" /> <link rel="stylesheet" href="../../../jqwidgets/styles/jqx.metro.css" type="text/css" /> <link rel="stylesheet" href="../../../styles/bootstrap.min.css" /> <link rel="stylesheet" href="../../../styles/bootstrap-theme.min.css"/> <script type="text/javascript" src="../../../scripts/jquery-1.11.1.min.js"></script> <script type="text/javascript" src="../../../scripts/bootstrap.min.js"></script> <script type="text/javascript" src="../../../jqwidgets/jqxcore.js"></script> <script type="text/javascript" src="../../../jqwidgets/jqxdata.js"></script> <script type="text/javascript" src="../../../jqwidgets/jqxgrid.js"></script> <script type="text/javascript" src="../../../jqwidgets/jqxgrid.sort.js"></script> <script type="text/javascript" src="../../../jqwidgets/jqxgrid.pager.js"></script> <script type="text/javascript" src="../../../jqwidgets/jqxgrid.selection.js"></script> <script type="text/javascript" src="../../../jqwidgets/jqxgrid.edit.js"></script> <script type="text/javascript" src="../../../jqwidgets/jqxscrollbar.js"></script> <script type="text/javascript" src="../../../jqwidgets/jqxbuttons.js"></script> <script type="text/javascript" src="../../../jqwidgets/jqxtabs.js"></script> <script type="text/javascript"> $(document).ready(function () { 'use strict'; var source = { url: 'data.php?usedwidget=ordersgrid', datatype: 'json', datafields: [ { name: 'orderID', type: 'string' }, { name: 'orderDate', type: 'date' }, { name: 'customer', type: 'string' }, { name: 'address', type: 'string' }, { name: 'city', type: 'string' }, { name: 'country', type: 'string' }, { name: 'product', type: 'string' }, { name: 'price', type: 'float' }, { name: 'qty', type: 'int' } ] }; var nestedGrids = []; var initrowdetails = function (index, parentElement, gridElement, record) { var id = record.uid.toString(); var grid = $($(parentElement).children()[0]); nestedGrids[index] = grid; var filtergroup = new $.jqx.filter(); var filtervalue = id; var filtercondition = 'equal'; var filter = filtergroup.createfilter('stringfilter', filtervalue, filtercondition); var ordersbyid = []; for (var m = 0; m < orders.length; m++) { var result = filter.evaluate(orders[m]['product']); if (result) { ordersbyid.push(orders[m]); } } var nestedGridAdapter = new $.jqx.dataAdapter(source); if (grid != null) { grid.jqxGrid({ source: nestedGridAdapter, width: '97%', height: 200, theme: 'metro', columns: [ { text: 'Product', datafield: 'orderID', width: '34%' }, { text: 'Price', datafield: 'orderDate', width: '33%' }, { text: 'Quantity', datafield: 'customer', width: '33%' } ] }); } }; var dataAdapter = new $.jqx.dataAdapter(source); $('#orders').jqxGrid( { width: '100%', height: 680, theme: 'metro', source: dataAdapter, rowdetails: true, rowdetailstemplate: { rowdetails: '<div style="margin: 10px;"></div>', rowdetailsheight: 200 }, ready: function () { $('#orders').jqxGrid('showrowdetails', 0); $('#orders').jqxGrid('showrowdetails', 1); }, initrowdetails: initrowdetails, columns: [ { text: 'Order ID', datafield: 'orderID', width: '10%' }, { text: 'Order Date', datafield: 'orderDate', width: '25%' }, { text: 'Customer', datafield: 'customer', width: '20%' }, { text: 'Address', datafield: 'address', width: '25%' }, { text: 'City', datafield: 'city', width: '10%' }, { text: 'Country', datafield: 'country', width: '10%' } ] }); }); </script> </head> <body> <div class="container" style="overflow:hidden;"> <div id="orders"></div> </div> </body> </html>