Giter Club home page Giter Club logo

grid's Introduction

jQuery grid plugin, also support Angular, Reactjs, Vuejs

ParamQuery Grid

Copyright (c) 2012-2021 Paramvir Dhindsa

Released under GPL v3 license

ParamQuery grid is a lightweight javascript grid for Angular, jQuery, Reactjs, Vuejs

  1. Tutorial

  2. API

  3. Demos or Examples

  4. PHP Integration Tutorial

  5. Angularjs bindings

  6. Angularjs demos

Features:


Supports 100,000+ records.

Support for Angular, Reactjs, Vuejs, Knockout, plain js. 

Copy paste to and from Excel.

Autofill, drag to fill.

State management.

Edit history and tracking: undo and redo.

Local, remote and custom sorting for common data formats like Integer, real numbers, Strings, dates, etc.

Local and remote filtering with header filtering row interface.

Paging with local or remote data.

Column and row grouping and fixed summary row.

Frozen rows & columns like Excel.

Export to Excel(xlsx), HTML, JSON & CSV format.

Nesting of grids and row details.

Virtual Scrolling and Rendering with unlimited rows and columns support.

Inline Editing: Batch editing, row editing, custom editors, multiline editing, validations.

Hide/ show columns, resizable and reorderable columns through drag and drop.

Theme support.

i18n.

Consistent look and functionality across all major browsers IE(11), Edge, Firefox, Chrome, Opera, etc

Displays data source formats like HTML, Array, XML, JSON, etc.

Can be used with any server side framework e.g. ASP.NET, MVC3, JSP, JSF, PHP, etc.

Many more...

grid's People

Contributors

clarence-pan avatar dunmaksim avatar fhelwanger avatar isdh avatar paramquery avatar peterdavehello avatar petigrafix avatar torumiyata avatar toy2done avatar viviengaetan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

grid's Issues

Fill selection range

It would be a very nice feature to have the option to fill a selected range with the value in the starting cell of the range. It would also be helpful to have an event model to hook into this. https://github.com/warpech/jquery-handsontable has something like this that is very nice. Have you given any thought implementing something like this?

paging with local data

There are problems with paging with local data.
In the transition between pages are read only the first data.
Workaround :
add to
fn._refreshDataFromDataModel

if (this.dataModel.curPage > 0 && DM.totalPages >= this.dataModel.curPage) {
            DM.curPage = this.dataModel.curPage;
        }

after this code:
if (DM.curPage < 1 && DM.totalPages > 0) {
DM.curPage = 1;
}

num_eles in hor scrollbar

If a column or more than 1 column is hidden in right pane, num_eles is not updated in horizontal scrollbar. (show / hide columns demo)

Search

It would be perfect if it could be possible to search through the columns...

column resize trigger

Dear paramQuery Team,

first of all: thx a lot fou your effort you put into this.
I have a question regarding the column resize feature:

Is there any chance to add a trigger on column resize (dragend of that ui widget) to be able to bind a function of myself to it? I'd simply like to save the current column width to a database.

thx a lot in advance,
best, roland

Give example of infinite scrolling where total number of rows is growing

The example provided assumes that there are 1M rows of data. If a new row is appended at the end while the user is scrolling, that row will not be accessible to the grid. What is a recommended way to proceed in such cases?

(This is probably more of a forum question but I am still waiting to get approved there)

Issue with jQuery dialog

I have a jQuery UI dialog. When i start him, i must load data and show grid, but when I do it - I have a empty grid. Anyway, if I create a grid after .dialog() function - I get an empty table. Here is example.

<div id="btnShowDialog">ShowDialog</div>
<div id="dialogExample" title="">
    <div id="dialogGrid"></div>
</div>
        // Prepare Dialog
        $("#dialogExample").dialog({
           autoOpen: false,
           height: 585,
           modal: true,
           resizable: false,
           width:600,
           show: {
             effect: "drop",
             duration: 300
           },
           hide: {
             effect: "drop",
             duration: 300
           }      

        }); 

        // Show Dialog
    $("#btnShowDialog").click(function() {

          var data = [[1, 'One', '22.01.2013', 'A'],
             [2, 'Two',  '22.01.2013', 'B'],
             [3, 'Three', '22.01.2013', 'A'],
             [4, 'Four',  '22.01.2013', 'B'],
             [5, 'Five', '22.01.2013', 'A'],
             [6, 'Six',  '22.01.2013', 'B']
            ];
          var obj = {height:     450, 
                   width:      565, 
                   title:      "Grid header", 
                   resizable:  false,  
                   editable:   false, 
                   numberCell: false,
                   scrollModel: {horizontal: false}};
           obj.colModel = [{ title: "ID", hidden: true},
                        { title: "Name", width: 385,  dataType: "string" },
                        { title: "Date",   width: 100, dataType:  "string", align: "center"},
                        { title: "State",  width: 70,   dataType: "string", align: "center"}
                       ];
           obj.dataModel = { data: data };
           $("#dialogGrid").pqGrid(obj);  
       $("#dialogExample").dialog("open");       
    });

Can we have some guidance re breaking changes?

Fantastic work here - many thanks. Much more straightforward than the other jquery grids I have tried to use.
I also appreciate the rapid updates and enhancements.

One request - though; when you remove / deprecate functionality (such as getSelection being removed in 1.0.4) would it be possible to provide some guidance on how to achieve the same result with the other methods / functionality?

I am an using 1.0.3 but I'm wary of the work required to update to the latest version as it's not clear how much effort is required to work round the changes.
Many thanks.

flexWidth in IE10

I'm having trouble with flexWidth in IE10. I'm using the demo code provided on your tutorial (http://paramquery.com/tutorial) and the grid looks fine in IE9 but the width is reduce to a few pixels in IE10 if flexWidth is set to true.

$("#grid_array").pqGrid("option", "flexWidth", true );

jQuery 1.9 compatibility

pqgrid 1.0.6 is incompatible with jQuery 1.9 because it uses the long time deprecated and now removed property jQuery.browser. Should be replaced with feature detection API ( jQuery.support).

Handle additional return data on remote data retrieval

Add the possibility to handle additional return data to the load event.
Additional to retObj.data/.curPage/.totalRecords a remote request can return infoData to update the grid/website after dataretrieval (e.g. aggregated sum of a column, ...). In order to provide this data within the "load" event, the dataModel can be enhanced with infoData property that can be set with array/objects.


I'm new to github but have implemented this behavior on a local fork of the paramquery/grid project. What is the best way to provide this implementation for review or as suggest? Trigger Pull Request from my fork?

THX

add event onShow

Whether probably to add event at show of the grid.
Now I shall try to explain:
Actually here an example - http://jsfiddle.net/TYjfk/7/
There it is visible as itself conducts two identical grids on different tabs.
It would be desirable that at show the grid was refreshed.
It would be desirable that there was a possibility it to make by means of pqGrid, instead of to hang events separately.
I I hope has clearly explained.
Sorry for my bad english.
In advance thanks!

disable Selection

disable selection not called when a cell is being edited and focus is set to another cell.

.pq-grid-inner outline on MacOS X

On selection within the grid, div.pq-grid-inner will get an outline on MacOS X Firefox/Chrome/Safari (see screenshot attached).

Screenshot_26 03 13_17_33

Fixed locally by adding the following line to my css:
.pq-grid-inner { outline: none; }

How to feed the grid with a Json data format (key/value pair)

Hello,

How to feed the grid data rows with a json array format like :{ "totalRecords": 830, "curPage": 1, "data": [ ["country":"France", "street":"Paul Henriot", "postcode":10248, .......], ....] }
in other word, a normalized json format with key/value pair. The key being the property name in the datamodel.
Do you have a known approach to do that ?
Thanks for your help.

Row Double Click

rowDblClick event doesn´t work for the first row!
please fix!

Problem with table in table

Hello,
I have a problem with the function tableToArray(), if i have a table in table.
There are some unnecessary rows added. Have someone a workarround?
See Example:

[code]

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/themes/base/jquery-ui.css" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>    
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js"></script>
<link rel="stylesheet" href="pqgrid.min.css" />
<script src="pqgrid.min.js"></script>
<link rel="stylesheet" href="themes/office/pqgrid.css" />
<script> $(function () { var tbl = $("table.fortune500"); var obj = $.paramquery.tableToArray(tbl); var newObj = { width: 609, height: 530, flexHeight:true, numberCell: false, freezeCols: 2, columnBorders: true, rowBorders:true, editable:false, selectionModel: false, topVisible: false, bottomVisible: false, roundCorners:false}; newObj.dataModel = { data: obj.data}; newObj.colModel = obj.colModel; $("#grid_array").pqGrid(newObj); }); </script>
        <tr class="rowcolor2">
            <td class="rank">1</td>
            <td class="company">Exxon Mobil</td>
            <td class="revenue">339,938.0</td>
            <td class="datacell">36,130.0</td>
            <td class="withtab">
                <table cellspacing="0" cellpadding="0" border="1">
                    <tr>
                        <td>in1</td>
                        <td>Icon</td>
                    </tr>
                </table>
            </td>
        </tr>


        <tr class="rowcolor1" id="Tr1">
            <td class="rank">2</td>
            <td class="company">Wal-Mart Stores</td>
            <td class="revenue">315,654.0</td>
            <td class="datacell">11,231.0</td>
            <td class="withtab"></td>
        </tr>                                                                     

        <tr class="rowcolor2" id="Tr2">
            <td class="rank">3</td>
            <td class="company">Royal Dutch Shell</td>
            <td class="revenue">306,731.0</td>
            <td class="datacell">25,311.0</td>
            <td class="withtab"></td>
        </tr>

        <tr class="rowcolor1" id="Tr3">
            <td class="rank">4</td>
            <td class="company">BP</td>
            <td class="revenue">267,600.0</td>
            <td class="datacell">22,341.0</td>
            <td class="withtab">
                <table cellspacing="0" cellpadding="0" border="1">
                    <tr>
                        <td>in1</td>
                        <td>Icon</td>
                    </tr>
                    <tr>
                        <td>in2</td>
                        <td>Icon2</td>
                    </tr>
                </table>
            </td>
        </tr>
        <!-- repeating rows end -->
    </tbody></table>
[/code]
Rank Company Revenues ($ millions) Profits ($ millions) Within-Table

Filtering function..

Is there a function to implement column-level filters?

I found the search function but I can't found filtering function.

No license file included

Hi,

Your nice project states it is licensed under a MIT-license but the corresponding license file is absent from the repository.

Inline edit, tabbing from last editable cell does not trigger getEditCellData

For a plain (string) inline edit cell, tabbing off should call getEditCellData and save the data.
This works well with a cell in the middle of a row, no matter what that row is. However, if it is the last editable cell on the last row, tab has no effect so the cell cannot be saved.

Assume a grid where the final column has a getEditCellData property;
In a grid with (say) 5 rows, this works correctly for rows 1...4
On the 5th row, tab does not work and the getEditCellData function is never called.

Shift-tab works, presumably because the cursor has some place to go.
The workaround is to reorder the rows by clicking on a column header (assuming local or remote sorting is enabled) such that the edited row is no longer the last row in the grid.

conflict with bootstrap.js

with bootstrap.js navigation elements is not correct visible

screen-1
screen-2

without bootstrap.js work perfectly (navigation element visible correct)

screen-3
screen-4

question - Can this be fixed?
Thanks in advance!

images/ddn.png

Hi,

In the CSS file, i find the reference to images/ddn.png but i do'nt find find this file in the images directory.
Regards,

Row Double Click

Hi
I need to handle the Row Double Click. It appears that the Grid does not support this or am I wrong? If no, is there a plan to support row Double Click event?

Disable scrollbar & num column

How do I disable the vertical and horizontal scrollbar? Also, how do I disable the left numerical Excel column?

Thanks.

Search

Add a Search box / search area for fields

Need hover row property

Hi this is very nice plugin, but i think we can add more feature like: Need hover row property

jsonp - crossdomain ajaxs calls

Hi,

I need to get the grid data from a cross - domain call.

I use the JSON data grid, and when i change the
dataType: "JSON"
to
dataType: "JSONP"

I get a js error

is there a live example of a cross domain grid ? or a fix for this ?

thanks !

Ehud

scrollbars do nothing when dragging

if I drag the scrollbars without releasing them, nothing happens until the mouseup

users sometimes quickly scroll down and back up again to see the extent of the data

Break up into exposable modules

Individual components should be separated amd (or equivalent) modules.

After initialization, it would be nice if calling jQuery plugin for pqGrid returned the pqGrid instance.

Sortable and draggable also don't seem to be using the respective jQuery-UI components.

Class for row based on data within the row

Is there a possibility to add a custom class to each row?

E.g. register a callback that return a class name based on a custom function on the data for each row.

returnClass( row ){
if(row[2] > 0) return 'green';
else return 'red';
}

This could be very usefull to highlight some rows based on the data, ...

THX a lot for the great work!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.