The first step is to create html page and add links to the javascript files and
css dependencies to your project.
The jqxTreeGrid element requires the following
files:
The next step is to add the html element within the body of the html page.<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/jqxdata.js"></script>
<script type="text/javascript" src="../jqwidgets/jqxdata.export.js"></script>
<script type="text/javascript" src="../jqwidgets/jqxbuttons.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/jqxradiobutton.js"></script><script type="text/javascript" src="../jqwidgets/jqxcheckbox.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="../jqwidgets/jqxdatatable.js"></script><script type="text/javascript" src="../jqwidgets/jqxtreegrid.js"></script>
The last step is to initialize the element settings:<jqx-tree-grid settings="elementSettings"></jqx-tree-grid>
To call a function(method), you need to pass the method name and parameters(if any) in the jqxTreeGrid's instance.<script type="text/javascript">
JQXElements.settings["elementSettings"] =
{
sortable:true,filterable:true, columns:columns, columnGroups:columnGroups, source:source,altRows:true, theme:"light"
}
</script>
To get the result of a function after calling it, you can use the following syntax:<script>
window.onload = function () {
var element = document.querySelector("jqx-tree-grid");
element.addRow(10,{},'first');
}
</script>
To set a property(option), you need to use the property name and value(s) along with the jqxTreeGrid's instance.<script>
window.onload = function () {
var element = document.querySelector("jqx-tree-grid");
var result = element.exportData();
}
</script>
You can also set properties of HTML Elements by using Attributes. Traditionally, attributes are used to set the initial state of an element. Properties with camelCase naming have dash-based attributes. For example: A property "dataSource" will have an attribute called "data-source".window.onload = function() {
document.querySelector("jqx-tree-grid").altRows = false;
}
window.onload = function() {
var propertyValue = document.querySelector("jqx-tree-grid").altRows;
}
Event binding can be defined in the HTML as an attribute. The syntax is: 'on-' and the event's name. Event Names with camelCase naming have dash-based attributes. The attribute's value is the event handler's name. The addEventListener
function can also be used for event binding.
<script>
window.onload = function () {
var element = document.querySelector("jqx-tree-grid");
element.addEventListener("bindingComplete", function(event){
// Your code here
});
}
</script>
<!DOCTYPE html>
<html lang="en">
<head>
<title id='Description'>TreeGrid Custom Element Filtering and Sorting</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" />
<link rel="stylesheet" href="../../jqwidgets/styles/jqx.base.css" type="text/css" />
<link rel="stylesheet" href="../../jqwidgets/styles/jqx.light.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/jqxdata.js"></script><script type="text/javascript" src="../../jqwidgets/jqxcore.elements.js"></script><script type="text/javascript" src="../../jqwidgets/jqxbuttons.js"></script><script type="text/javascript" src="../../jqwidgets/jqxscrollbar.js"></script><script type="text/javascript" src="../../jqwidgets/jqxdatatable.js"></script><script type="text/javascript" src="../../jqwidgets/jqxtreegrid.js"></script><script type="text/javascript" src="../../jqwidgets/jqxlistbox.js"></script><script type="text/javascript" src="../../jqwidgets/jqxdropdownlist.js"></script><script type="text/javascript">var source = new jqx.dataAdapter({dataType: "json",dataFields: [{ name: 'EmployeeID', type: 'number' },{ name: 'ReportsTo', type: 'number' },{ name: 'FirstName', type: 'string' },{ name: 'LastName', type: 'string' },{ name: 'Country', type: 'string' },{ name: 'City', type: 'string' },{ name: 'Address', type: 'string' },{ name: 'Title', type: 'string' },{ name: 'HireDate', type: 'date' },{ name: 'BirthDate', type: 'date' }],hierarchy:{keyDataField: { name: 'EmployeeID' },parentDataField: { name: 'ReportsTo' }},id: 'EmployeeID',localData: [{ "EmployeeID": 1, "FirstName": "Nancy", "LastName": "Davolio", "ReportsTo": 2, "Country": "USA", "Title": "Sales Representative", "HireDate": "1992-05-01 00:00:00", "BirthDate": "1948-12-08 00:00:00", "City": "Seattle", "Address": "507 - 20th Ave. E.Apt. 2A" },{ "EmployeeID": 2, "FirstName": "Andrew", "LastName": "Fuller", "ReportsTo": null, "Country": "USA", "Title": "Vice President, Sales", "HireDate": "1992-08-14 00:00:00", "BirthDate": "1952-02-19 00:00:00", "City": "Tacoma", "Address": "908 W. Capital Way" },{ "EmployeeID": 3, "FirstName": "Janet", "LastName": "Leverling", "ReportsTo": 2, "Country": "USA", "Title": "Sales Representative", "HireDate": "1992-04-01 00:00:00", "BirthDate": "1963-08-30 00:00:00", "City": "Kirkland", "Address": "722 Moss Bay Blvd." },{ "EmployeeID": 4, "FirstName": "Margaret", "LastName": "Peacock", "ReportsTo": 2, "Country": "USA", "Title": "Sales Representative", "HireDate": "1993-05-03 00:00:00", "BirthDate": "1937-09-19 00:00:00", "City": "Redmond", "Address": "4110 Old Redmond Rd." },{ "EmployeeID": 5, "FirstName": "Steven", "LastName": "Buchanan", "ReportsTo": 2, "Country": "UK", "Title": "Sales Manager", "HireDate": "1993-10-17 00:00:00", "BirthDate": "1955-03-04 00:00:00", "City": "London", "Address": "14 Garrett Hill" },{ "EmployeeID": 6, "FirstName": "Michael", "LastName": "Suyama", "ReportsTo": 5, "Country": "UK", "Title": "Sales Representative", "HireDate": "1993-10-17 00:00:00", "BirthDate": "1963-07-02 00:00:00", "City": "London", "Address": "Coventry House Miner Rd." },{ "EmployeeID": 7, "FirstName": "Robert", "LastName": "King", "ReportsTo": 5, "Country": "UK", "Title": "Sales Representative", "HireDate": "1994-01-02 00:00:00", "BirthDate": "1960-05-29 00:00:00", "City": "London", "Address": "Edgeham Hollow Winchester Way" },{ "EmployeeID": 8, "FirstName": "Laura", "LastName": "Callahan", "ReportsTo": 2, "Country": "USA", "Title": "Inside Sales Coordinator", "HireDate": "1994-03-05 00:00:00", "BirthDate": "1958-01-09 00:00:00", "City": "Seattle", "Address": "4726 - 11th Ave. N.E." },{ "EmployeeID": 9, "FirstName": "Anne", "LastName": "Dodsworth", "ReportsTo": 5, "Country": "UK", "Title": "Sales Representative", "HireDate": "1994-11-15 00:00:00", "BirthDate": "1966-01-27 00:00:00", "City": "London", "Address": "7 Houndstooth Rd." }]});var columns = [{ text: 'FirstName', columnGroup: 'Name', dataField: 'FirstName', width: 200 },{ text: 'LastName', columnGroup: 'Name', dataField: 'LastName', width: 200 },{ text: 'Title', dataField: 'Title', width: 160 },{ text: 'Birth Date', dataField: 'BirthDate', cellsFormat: 'd', width: 120 },{ text: 'Hire Date', dataField: 'HireDate', cellsFormat: 'd', width: 120 },{ text: 'Address', dataField: 'Address', width: 250 },{ text: 'City', dataField: 'City', width: 120 },{ text: 'Country', dataField: 'Country' }];var columnGroups = [{ text: 'Name', name: 'Name' }];JQXElements.settings["treeGridSettings"] ={sortable:true,filterable:true, columns:columns, columnGroups:columnGroups, source:source,altRows:true, theme:"light"}</script></head><body><jqx-tree-grid settings="treeGridSettings"></jqx-tree-grid></body></html>