jQWidgets
  • Documentation
  • License and Pricing
  • Services
  • Community
    • Forums
    • Blogs
    • Follow Us
    • Client Login
  • About
    • About Us
    • Contact Us
    • FAQ
  • Demo
  • Download

React UI Components

  • Javascript/jQuery
  • Angular
  • Vue
  • React
  • Custom Elements
  • ASP .NET MVC
  • Showcase Demos
  • Responsive Design
  • Theme Builder
Show Demo List

React UI Components

  • jqxGrid
  • jqxTabs
  • jqxTextArea
  • jqxWindow
  • jqxKnob
  • jqxResponsivePanel
  • jqxChart
  • jqxMenu
  • jqxInput
  • jqxDocking
  • jqxGauge
  • jqxNavBar
  • jqxPivotGrid
  • jqxTree
  • jqxPasswordInput
  • jqxNotification
  • jqxBarGauge
  • jqxSortable
  • jqxScheduler
  • jqxNavigationBar
  • jqxMaskedInput
  • jqxPopOver
  • jqxExpander
  • jqxLoader
  • jqxTreeGrid
  • jqxListMenu
  • jqxComplexInput
  • jqxTooltip
  • jqxRating
  • jqxDraw
  • jqxDataTable
  • jqxToolBar
  • jqxFormattedInput
  • jqxColorPicker
  • jqxRangeSelector
  • jqxDragDrop
  • jqxTreeMap
  • jqxComboBox
  • jqxNumberInput
  • jqxScrollView
  • jqxSlider
  • jqxPanel
  • jqxEditor
  • jqxDropDownList
  • jqxDateTimeInput
  • jqxProgressBar
  • jqxScrollBar
  • jqxValidator
  • jqxRibbon
  • jqxListBox
  • jqxCalendar
  • jqxFileUpload
  • jqxSplitter
  • jqxValidator
  • jqxLayout
  • jqxButtons
  • jqxKanban
  • jqxBulletChart
  • jqxDockingLayout

jqxGrid

  • Default Functionality
  • Spreadsheet
  • Create, Remove, Update
  • Data Export
  • Data Printing
  • State Maintenance
  • Localization
  • DropDown Grid
  • Sorting
    • Sorting
    • Custom Sorting
  • Filtering
    • Filtering
    • Filter Menu Types
    • Custom Filter Menu
    • Filter Row
    • Excel-like Filter
    • Filter Row & Custom List Items
    • Filter Conditions
    • Date & Range Filter
    • Initial Filter
    • Custom List Items with Key/Value
  • Grouping
    • Grouping
    • Grouping with Pager
    • Toggle Sub Rows
    • Aggregates
  • Paging
    • Paging
    • Initial Page and PageSize
    • Pager Modes
  • Editing
    • Editing
    • Popup Editing
    • Edit Modes
    • Customized Editors
    • Disable Editing of Rows
    • Custom DropDownList Column
    • Custom ComboBox Column
    • Cascading ComboBoxes
    • Full Row Edit
    • Row Edit with Ever Present Row
    • Custom Column Editor
    • Custom Row Editor
  • Data Binding
    • Binding to Array
    • Binding to JS Array
    • Binding to Observable Array
    • Binding to XML
    • Binding to JSON
    • Binding to JSON using PHP
    • Binding to JSON String
    • Binding to Remote Data
    • Binding to CSV
    • Binding to TSV
    • Large Data Set
    • Many Columns
    • Refresh Data
    • Virtual Paging
    • Virtual Scrolling
    • Load from Table
  • Aggregates
    • Aggregates
    • Custom Aggregates
    • Aggregates Renderer
    • Grouping Aggregates
  • Columns
    • Text Alignment
    • Show/Hide Columns
    • Auto-Size Columns
    • Percentage Width for Columns
    • CheckBox Column
    • Row Number Column
    • Column Template
    • Widget Column
    • Columns Hierarchy
    • Cells Styling
    • Image Column
    • Columns Resize
    • Columns Reorder
    • Pinned/Frozen Columns
    • Column Tooltips
    • Computed Column
    • Dynamic Columns
    • Foreign Key Column
    • Keys/Values Column
  • Selection
    • Row Selection
    • Cells Selection
    • CheckBox Selection
  • Drag Drop
    • Drag & Drop
  • Ever Present Row
    • Add New Row
    • Add New Bottom Row
    • Updating Actions at Runtime
    • Ever Present Row with Custom Widgets
    • Ever Present Row with Columns
    • Positioning
    • Validation
    • Add, Remove, Update
    • Localized Add New Row
  • Row Details
  • Nested Grids
  • Master Details
  • Deferred Scrolling
  • Deferred Scrolling on a Large Data Set
  • StatusBar
  • ToolBar
  • Context Menu
  • Auto Row Height
  • Custom Keyboard Navigation
  • Fluid Size
  • Grid in jqxTabs
  • Keyboard Navigation
  • Right to Left Layout
Theme:
  • Demo
  • App.htm
  • App.js
The React Grid sample shows how to customize fields in the ever present row. The first Text Field in the ever present row is disabled.

Add New Row to Top
Add New Row to Bottom
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title id='Description'>
        This React Grid shows how to customize fields in the ever present row. The first Text Field in the ever present row is disabled.
    </title>
	<meta name="description" content="This React Grid demo showcases how to update ever present row"/>
	
    <link rel="stylesheet" href="../jqwidgets/styles/jqx.base.css" type="text/css" />
    <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/jqxlistbox.js"></script>
    <script type="text/javascript" src="../jqwidgets/jqxdropdownlist.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.filter.js"></script>
    <script type="text/javascript" src="../jqwidgets/jqxgrid.sort.js"></script>
    <script type="text/javascript" src="../jqwidgets/jqxgrid.selection.js"></script>
    <script type="text/javascript" src="../jqwidgets/jqxgrid.edit.js"></script>
    <script type="text/javascript" src="../jqwidgets/jqxgrid.columnsresize.js"></script>
    <script type="text/javascript" src="../jqwidgets/jqxpanel.js"></script>
    <script type="text/javascript" src="../jqwidgets/jqxcalendar.js"></script>
    <script type="text/javascript" src="../jqwidgets/jqxradiobutton.js"></script>
    <script type="text/javascript" src="../jqwidgets/jqxdatetimeinput.js"></script>
    <script type="text/javascript" src="../jqwidgets/jqxcheckbox.js"></script>
    <script type="text/javascript" src="../jqwidgets/globalization/globalize.js"></script>
    <script type="text/javascript" src="../scripts/demos.js"></script>
    <script type="text/javascript" src="../sampledata/generatedata.js"></script>
</head>
<body>
    <div class="example-description" style="margin-bottom:3em">
        The React Grid sample shows how to customize fields in the ever present row. The first Text Field in the ever present row is disabled.
    </div>
    <div id="app"></div>
    <script src="../build/grid_updatingactionsatruntime.bundle.js"></script>
</body>
</html>

import React from 'react';
import ReactDOM from 'react-dom';

import JqxGrid from '../../../jqwidgets-react/react_jqxgrid.js';
import JqxRadioButton from '../../../jqwidgets-react/react_jqxradiobutton.js';

class App extends React.Component {
    componentDidMount() {
        this.refs.top.on('checked', () => {
            this.refs.myGrid.everpresentrowactions('add reset');
        });
        this.refs.bottom.on('checked', () => {
            this.refs.myGrid.everpresentrowactions('addBottom reset');
        });
    }
    render() {
        let source =
            {
                localdata: generatedata(10),
                datafields:
                [
                    { name: 'name', type: 'string' },
                    { name: 'productname', type: 'string' },
                    { name: 'available', type: 'bool' },
                    { name: 'date', type: 'date' },
                    { name: 'quantity', type: 'number' }
                ],
                datatype: 'array'
            };

        let dataAdapter = new $.jqx.dataAdapter(source);

        let columns =
            [
                {
                    text: 'Name', columntype: 'textbox', filtertype: 'input', datafield: 'name', width: 215,
                    initEverPresentRowWidget: (datafield, htmlElement) => {
                        let input = htmlElement.find('input');
                        input.attr('readonly', true);
                        input.attr('disabled', true);
                        htmlElement.addClass('jqx-fill-state-disabled');
                    }
                },
                { text: 'Product', filtertype: 'checkedlist', datafield: 'productname', width: 220 },
                { text: 'Ship Date', datafield: 'date', filtertype: 'range', width: 210, cellsalign: 'right', cellsformat: 'd' },
                { text: 'Qty.', datafield: 'quantity', filtertype: 'number', cellsalign: 'right' }
            ];

        return (
            <div>
                <JqxGrid ref='myGrid'
                    width={850} source={dataAdapter} filterable={true}
                    showeverpresentrow={true} everpresentrowposition={'top'}
                    editable={true} columns={columns}
                    selectionmode={'multiplecellsadvanced'}
                />
                <br />
                <JqxRadioButton ref='top' checked={true}>Add New Row to Top</JqxRadioButton>
                <JqxRadioButton ref='bottom'>Add New Row to Bottom</JqxRadioButton>
            </div>
        )
    }
}

ReactDOM.render(<App />, document.getElementById('app'));

jQWidgets
  • Facebook
  • Youtube
  • Google +
  • Demo
  • Download
  • Documentation
  • License and Pricing
  • Services
  • Forums
  • About
  • Terms of Use
  • Privacy Policy
  • Contact Us

jQWidgets © 2011-2019. All Rights Reserved.