JQuery Grid

Invoke the addrow method of the jqxGrid. Author: http://jqwidgets.com

HTML

<script src="https://jqwidgets.com/public/jqwidgets/jqx-all.js"></script>
<link rel="stylesheet" href="https://jqwidgets.com/public/jqwidgets/styles/jqx.base.css">
<link rel="stylesheet" href="https://jqwidgets.com/public/jqwidgets/styles/jqx.energyblue.css">
<script src="https://jqwidgets.com/jquery-widgets-demo/demos/jqxgrid/generatedata.js"></script>
<div id='jqxWidget'>
    <div id="jqxgrid"></div>
</div>
<div style="margin-top: 10px;">
    <input id="addrowbutton" type="button" value="Add Row" />
</div>
<div style="margin-top: 10px;">
    <input id="rowinfobutton" type="button" value="Info" />
</div>
<div style="margin-top: 10px;">
    <input id="validatebutton" type="button" value="Validate" />
</div>

JavaScript

var data = generatedata(5);
 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 adapter = new $.jqx.dataAdapter(source);
 $("#jqxgrid").jqxGrid({
     width: 500,
     height: 300,
     theme: 'energyblue',
     source: adapter,
     sortable: true,
     editable: true,
     columns: [{
         text: 'First Name',
         datafield: 'firstname',
         columngroup: 'Name',
         width: 90
     }, {
         text: 'Last Name',
         columngroup: 'Name',
         datafield: 'lastname',
         width: 90
     }, {
         text: 'Product',
         datafield: 'productname',
         width: 170,
         validation: function (cell, value) {
              if (value == "Cappucino" || value == "Black Tea") {
                 return { result: false, message: "We're out of " + value };}
            return true;
        }
     }, {
         text: 'Order Date',
         datafield: 'date',
         width: 160,
         cellsformat: 'dd-MMMM-yyyy'
     }, {
         text: 'Quantity',
         datafield: 'quantity',
         width: 80,
         cellsalign: 'right',
         validation: function (cell, value) {
              if (value < 1 || value > 5) {
                 return { result: false, message: "Between 1 and 5 please" };}
            return true;
        }
     },
        {
         text: 'Unit Price',
         datafield: 'price',
         cellsalign: 'right',
         cellsformat: 'c2',
         validation: function (cell, value) {
              if (value > 4) {
                 return { result: false, message: "Can't be more than $4.00" };}
            return...