Html Grid

Dynamically set the columns property of the jqxGrid. Author: http://jqwidgets.com

by Alexey Sharifullin

HTML

<script src="http://www.jqwidgets.com/jquery-widgets-demo/demos/jqxgrid/generatedata.js"></script>
<script src="http://jqwidgets.com/public/jqwidgets/jqx-all.js"></script>
<link rel="stylesheet" href="http://jqwidgets.com/public/jqwidgets/styles/jqx.base.css">
<link rel="stylesheet" href="http://jqwidgets.com/public/jqwidgets/styles/jqx.energyblue.css">
<div id='jqxWidget'>
    <div id="jqxgrid"></div>
</div>

JavaScript

var data = generatedata(50);
 var source = {
     localdata: data,
     datafields: [{
         name: 'firstname',
         type: 'string'
     }, {
         name: 'lastname',
         type: 'string'
     }, {
         name: 'productname',
         type: 'string'
     }, {
         name: 'date',
         type: 'date'
     }, {
         name: 'quantity',
         type: 'number'
     }, {
         name: 'price',
         type: 'number'
     }],
     datatype: "array"
 };

 var columns = [{
     text: 'First Name',
     datafield: 'firstname',
     width: 90
 }, {
     text: 'Last Name',
     datafield: 'lastname',
     width: 90
 }, {
     text: 'Quantity',
     datafield: 'quantity',
     width: 80,
     cellsalign: 'right',
     initeditor: function (row, cellvalue, editor, celltext, pressedChar) {
         editor.jqxNumberInput('val', cellvalue);
     },
     geteditorvalue: function (row, cellvalue, editor) {
         return editor.jqxNumberInput('val');
     },
     createeditor: function (row, cellvalue, editor, celltext, cellwidth, cellheight) {
         editor.jqxNumberInput({
             decimalDigits: 3,
             width: cellwidth,
             height: cellheight
         });
     },
     cellsformat: "f3",
     columntype: "template"

 }, {
     text: 'Product',
     datafield: 'productname',
     width: 170
 }, {
     text: 'Order Date',
     datafield: 'date',
     width: 160,
     cellsformat: 'dd-MMMM-yyyy'
 }, {
     text: 'Unit Price',
     datafield: 'price',
     cellsalign: 'right',
     cellsformat: 'c2'
 }];



 var adapter = new $.jqx.dataAdapter(source);
 $("#jqxgrid").jqxGrid({
     width: 500,
     theme: 'energyblue',
     source: adapter,
     editable: true,
     editmode: 'selectedcell',
     columns: columns
 });