UNPKG

jqwidgets-framework

Version:

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

153 lines (145 loc) 8.29 kB
<!DOCTYPE html> <html lang="en"> <head> <title id='Description'>In this sample is illustrated how to create custom editors for jqxTreeGrid. The "Name" and "Budget" columns use the jqxDropDownList and jqxSlider widgets as a cell editors. </title> <link rel="stylesheet" href="../../../jqwidgets/styles/jqx.base.css" type="text/css" /> <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" /> <script type="text/javascript" src="../../../scripts/jquery-1.12.4.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/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" src="../../../jqwidgets/jqxcheckbox.js"></script> <script type="text/javascript" src="../../../jqwidgets/jqxinput.js"></script> <script type="text/javascript" src="../../../jqwidgets/jqxslider.js"></script> <script type="text/javascript" src="../../../scripts/demos.js"></script> <script type="text/javascript" src="../../sampledata/generatedata.js"></script> <script type="text/javascript"> $(document).ready(function () { var data = [ { "id": "1", "name": "Corporate Headquarters", "budget": "1230000", "location": "Las Vegas", "children": [ { "id": "2", "name": "Finance Division", "budget": "423000", "location": "San Antonio", "children": [ { "id": "3", "name": "Accounting Department", "budget": "113000", "location": "San Antonio" }, { "id": "4", "name": "Investment Department", "budget": "310000", "location": "San Antonio", children: [ { "id": "5", "name": "Banking Office", "budget": "240000", "location": "San Antonio" }, { "id": "6", "name": "Bonds Office", "budget": "70000", "location": "San Antonio" }, ] } ] }, { "id": "7", "name": "Operations Division", "budget": "600000", "location": "Miami", "children": [ { "id": "8", "name": "Manufacturing Department", "budget": "300000", "location": "Miami" }, { "id": "9", "name": "Public Relations Department", "budget": "200000", "location": "Miami" }, { "id": "10", "name": "Sales Department", "budget": "100000", "location": "Miami" } ] }, { "id": "11", "name": "Research Division", "budget": "200000", "location": "Boston" } ] } ]; var source = { dataType: "json", dataFields: [ { name: "name", type: "string" }, { name: "budget", type: "number" }, { name: "id", type: "number" }, { name: "children", type: "array" }, { name: "location", type: "string" } ], hierarchy: { root: "children" }, localData: data, id: "id" }; var dataAdapter = new $.jqx.dataAdapter(source, { loadComplete: function () { } }); $("#treegrid").jqxTreeGrid( { width: getWidth("TreeGrid"), source: dataAdapter, altRows: true, autoRowHeight: false, ready: function () { // Expand rows with ID = 1, 2 and 7 $("#treegrid").jqxTreeGrid('expandRow', 1); $("#treegrid").jqxTreeGrid('expandRow', 2); $("#treegrid").jqxTreeGrid('expandRow', 7); }, editable: true, columns: [ { text: 'ID', editable: false, dataField: 'id', width: 150 }, { text: 'Name', dataField: 'name', width: 250, columnType: "template", createEditor: function (row, cellvalue, editor, cellText, width, height) { // construct the editor. var source = ["Corporate Headquarters", "Finance Division", "Accounting Department", "Investment Department", "Banking Office", "Bonds Office", "Operations Division", "Manufacturing Department", "Public Relations Department", "Sales Department", "Research Division"]; editor.jqxDropDownList({autoDropDownHeight: true, source: source, width: '100%', height: '100%' }); }, initEditor: function (row, cellvalue, editor, celltext, width, height) { // set the editor's current value. The callback is called each time the editor is displayed. editor.jqxDropDownList('selectItem', cellvalue); }, getEditorValue: function (row, cellvalue, editor) { // return the editor's value. return editor.val(); } }, { text: 'Budget', align: 'right', cellsAlign: 'right', cellsFormat: 'c2', columnType: "template", dataField: 'budget', width: 200, createEditor: function (row, cellvalue, editor, cellText, width, height) { // construct the editor. editor.jqxSlider({ showTicks: false, min: 0, max: 1250000, width: width, height: height, tooltip: true, tooltipFormatFunction: function (value) { return $.jqx.formatNumber(value, "c2"); } }); }, initEditor: function (row, cellvalue, editor, celltext, width, height) { // set the editor's current value. The callback is called each time the editor is displayed. var value = parseInt(cellvalue); if (isNaN(value)) value = 0; editor.jqxSlider('setValue', value); }, getEditorValue: function (row, cellvalue, editor) { // return the editor's value. return editor.val(); } }, { text: 'Location', dataField: 'location' } ] }); }); </script> </head> <body class='default'> <div id="treegrid"></div> <div style="position: absolute; bottom: 5px; right: 5px;"> <a href="https://www.jqwidgets.com/" alt="https://www.jqwidgets.com/"><img alt="https://www.jqwidgets.com/" title="https://www.jqwidgets.com/" src="https://www.jqwidgets.com/wp-content/design/i/logo-jqwidgets.png"/></a> </div> </body> </html>