jqwidgets-scripts-custom
Version:
jQWidgets is an advanced jQuery, Angular 7, Vue, React, ASP .NET MVC, Custom Elements and HTML5 UI framework.
253 lines (238 loc) • 9.74 kB
HTML
<html lang="en">
<head>
<title id='Description'>Grid Custom Element LoadFromTable</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1 minimum-scale=1" />
<meta name="description" content="This is an example of Table data in Custom Element Grid." />
<link rel="stylesheet" href="../../../jqwidgets/styles/jqx.base.css" type="text/css" />
<link rel="stylesheet" href="../../../styles/demos.css" type="text/css" />
<script type="text/javascript" src="../../../scripts/webcomponents-lite.min.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxcore.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxcore.elements.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxdata.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxbuttons.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxcheckbox.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxscrollbar.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxmenu.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxgrid.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxgrid.selection.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxgrid.sort.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxgrid.columnsresize.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxgrid.edit.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxlistbox.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxdropdownlist.js"></script>
<script type="text/javascript" src="../../../scripts/demos.js"></script>
<script type="text/javascript">
var generateData = function() {
var table = document.querySelector('table');
var columns = table.children[0].querySelectorAll('th');
var rows = table.children[1].querySelectorAll('tr');
var data = [];
for (var i = 0; i < rows.length; i++) {
var row = rows[i];
var datarow = {};
for (var j = 0; j < columns.length; j++) {
// Get column's title.
var columnName = columns[j].innerHTML;
// Get cell.
var cell = rows[i].children[j].innerHTML;
datarow[columnName] = cell;
}
data[data.length] = datarow;
}
return data;
};
window.onload = function() {
var myButton = document.querySelector('jqx-button');
myButton.addEventListener('click', function() {
var source =
{
localdata: generateData(),
datatype: 'array',
datafields:
[
{ name: 'First Name', type: 'string' },
{ name: 'Last Name', type: 'string' },
{ name: 'Product', type: 'string' },
{ name: 'Available', type: 'string' },
{ name: 'Ship Date', type: 'date', format: 'MM/dd/yyyy' },
{ name: 'Quantity', type: 'number' },
{ name: 'Price', type: 'number' }
]
};
var dataAdapter = new jqx.dataAdapter(source);
var settings =
{
source: dataAdapter,
columnsresize: true,
autoheight: true,
sortable: true,
columns: [
{ text: 'First Name', dataField: 'First Name', align: 'center', width: 130 },
{ text: 'Last Name', dataField: 'Last Name', align: 'center', width: 130 },
{ text: 'Product', dataField: 'Product', align: 'center', width: 170 },
{ text: 'Available', dataField: 'Available', columntype: 'checkbox', align: 'center', width: 90 },
{ text: 'Ship Date', dataField: 'Ship Date', align: 'center', cellsformat: 'd', width: 100 },
{ text: 'Quantity', dataField: 'Quantity', align: 'center', cellsalign: 'right', width: 100 },
{ text: 'Price', dataField: 'Price', align: 'right', cellsalign: 'right', cellsformat: 'c2' }
]
};
var myGrid = document.createElement('jqx-grid');
myGrid.settings = settings;
document.querySelector('#gridContainer').appendChild(myGrid);
});
};
</script>
</head>
<body>
<div class="example-description">
This example shows how to create an Custom element Grid from Table data.
</div>
<table style="width: 850px" cellSpacing='0' cellPadding='2'>
<thead>
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Product</th>
<th>Available</th>
<th>Ship Date</th>
<th>Quantity</th>
<th>Price</th>
</tr>
</thead>
<tbody>
<tr>
<td>Nancy</td>
<td>Vileid</td>
<td>Espresso con Panna</td>
<td>true</td>
<td>5/20/2012</td>
<td>9</td>
<td>$3.25</td>
</tr>
<tr>
<td>Elio</td>
<td>Nagase</td>
<td>Espresso con Panna</td>
<td>true</td>
<td>9/26/2012</td>
<td>6</td>
<td>$3.25</td>
</tr>
<tr>
<td>Cheryl</td>
<td>Nagase</td>
<td>Doubleshot Espresso</td>
<td>false</td>
<td>4/19/2012</td>
<td>9</td>
<td>$3.30</td>
</tr>
<tr>
<td>Regina</td>
<td>Devling</td>
<td>Caramel Latte</td>
<td>true</td>
<td>2/26/2012</td>
<td>11</td>
<td>$3.80</td>
</tr>
<tr>
<td>Michael</td>
<td>Winkler</td>
<td>Doubleshot Espresso</td>
<td>false</td>
<td>7/16/2012</td>
<td>4</td>
<td>$3.30</td>
</tr>
<tr>
<td>Mayumi</td>
<td>Burke</td>
<td>Caffe Americano</td>
<td>false</td>
<td>9/7/2012</td>
<td>1</td>
<td>$2.50</td>
</tr>
<tr>
<td>Andrew</td>
<td>Nagase</td>
<td>Caffe Espresso</td>
<td>true</td>
<td>4/15/2012</td>
<td>3</td>
<td>$3.00</td>
</tr>
<tr>
<td>Ian</td>
<td>Burke</td>
<td>Green Tea</td>
<td>false</td>
<td>11/16/2012</td>
<td>5</td>
<td>$1.50</td>
</tr>
<tr>
<td>Yoshi</td>
<td>Petersen</td>
<td>White Chocolate Mocha</td>
<td>false</td>
<td>7/26/2012</td>
<td>2</td>
<td>$3.60</td>
</tr>
<tr>
<td>Lars</td>
<td>Bjorn</td>
<td>Peppermint Mocha Twist</td>
<td>false</td>
<td>7/17/2012</td>
<td>11</td>
<td>$4.00</td>
</tr>
<tr>
<td>Guylene</td>
<td>Devling</td>
<td>Caramel Latte</td>
<td>true</td>
<td>8/9/2012</td>
<td>6</td>
<td>$3.80</td>
</tr>
<tr>
<td>Michael</td>
<td>Burke</td>
<td>Caffe Americano</td>
<td>false</td>
<td>9/10/2012</td>
<td>11</td>
<td>$2.50</td>
</tr>
<tr>
<td>Petra</td>
<td>Vileid</td>
<td>White Chocolate Mocha</td>
<td>false</td>
<td>8/21/2012</td>
<td>7</td>
<td>$3.60</td>
</tr>
<tr>
<td>Lars</td>
<td>Nodier</td>
<td>White Chocolate Mocha</td>
<td>false</td>
<td>7/16/2012</td>
<td>8</td>
<td>$3.60</td>
</tr>
</tbody>
</table>
<br />
<jqx-button>Load jqxGrid from Table</jqx-button>
<br />
<div id="gridContainer"></div>
</body>
</html>