Git Product home page Git Product logo

ag-grid / ag-grid Goto Github PK

View Code? Open in Web Editor NEW
11.8K 213.0 1.8K 2.41 GB

The best JavaScript Data Table for building Enterprise Applications. Supports React / Angular / Vue / Plain JavaScript.

Home Page: http://www.ag-grid.com

License: MIT License

JavaScript 3.26% CSS 1.70% TypeScript 90.31% Shell 0.68% HTML 0.03% SCSS 4.02%
react angular pagination sorting grid table datatable datagrid filtering grouping

ag-grid's People

Contributors

abiglazier avatar adam-wang-uk avatar aggitdeployment avatar alantreadway avatar alexanderby avatar alexwilton avatar alowdon avatar andrewglazier avatar berniesumption avatar ceolter avatar fahadaggrid avatar gportela85 avatar jamesswinton avatar jimhigson avatar kylerphillips avatar lsjroberts avatar makinggoodsoftware avatar manapeirov avatar markdurrant avatar peterjrreynolds avatar petyosi avatar rmc-software avatar salmenus avatar seanlandsman avatar sophialazarova avatar stephencooper avatar swalters avatar taktran avatar timkendrick avatar yay 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ag-grid's Issues

csv / excel like export

A common theme with grids seems to be a need to export to csv/excel. I'd assume it would be much easier with a grid like this than something like jqgrid to get something built in.

Just curious if anybody shares that interest in having it built in or if it's just easy enough to do it post-implementation?

Excel-Style Filtering - Updating Filter Options based on other filters

Hello,

I think the filters would be more intuitive to Angular Grid users if they functioned similar to how filtering works in Microsoft Excel. For instance, if I filter on one particular column in a data set, any additional filters should be limited to display only the filter options available based on the remaining data set from the first filter.

Not sure if this is already on the feature list or not!

Grid state when changing data

Currently if I filter the grid on one column and after that I change rowData and refresh the grid, the filtering is still there which is good, but if I sort the collumn, change rowData and refresh the grid, the columns will not have sorting enabled the way I sorted them in the first place.

So, in short, state of grid is saved for filtering but not for sorting.

I think it should also save the state for sorting but for those users of angular grid that want to reset state for these maybe the api could have methods like: resetFiltering, resetSort on angular grid.

[FEAT] Column width: auto

Allow columns to resize themselves to fit the content of the longest cell. Suggested column definition syntax:
{ displayName: 'Url', field: 'url', width: 'auto' }

Support for nested properties in field column definition

Hi @ceolter, I found this grid very interesting!

Could you please add support to map columns to nested data properties?

var data = [{
    name: 'juan',
    address: {
        street: '9 de Julio 544',
        city: 'Montevideo'
    }
}]

var coldef = [{
    displayName: 'name',
    field: 'name'
},{
    displayName: 'City',
    field: 'address["city"]'
}]

[BUG] Pinned columns leaves a white space at the bottom, sometimes

Hi!

I've noticed that sometimes the pinned columns container layer does not fill all the grid height, and leaves a white space at bottom:

angulargrid issue

The problem is that the layer height of .ag-pinned-cols-viewport misses some pixels (corresponding to the not pinned rows horizontal scrollbar height, I think). I'm not sure as I've not swam into the code yet.

I'm using a Chrome 41.0.2272.118 on a Mac. In Safari it also seems to fail.
I've tested it on Chrome for windows and there you can see that the missing height is the same as the horizontal scrollbar, or 2 pixels higher...

Regards
Pablo García

Tests

Need both unit and e2e tests. Protractor and Jasmine.

[FEAT] Keyboard shortcuts

A few things:

  • Having the ability to select columns using CTRL or CTRL + Shift would be great for multiple select.
  • Using arrow keys to move up and down or maybe even left and right would be great.

Buttons in cell

Hello!

Is it possible to place button into cell? And will it work with angular scope methods?

Rowspan

Reading through the story of "Why The World Needed Another AngularJS Grid" sounded hauntingly familiar. Bouncing from ng-grid, to pure Angular.js to looking into writing a d3/svg implementation.

I am curious, is there a way to mimic rowspan behavior like in HTML tables?

default cellrender in firefox

Hi,

In RowRenderer.prototype.putDataIntoCell
eGridCell.innerText = value;

doesn't work properly on firefox (at least under linux, firefox 36.0.1).
Cells are empty.

eGridCell.innerHTML = value;
works for me.

Move styles to external file

Styles are very hard to customize and manage in their current state. The build scripting looks pretty crazy, and it also looks like they are all combined and injected as a style tag in the head in the end, making overrides cumbersome and at the mercy of script execution sequence.

Ideally, keeping all of the css files in the organization you have them in src would make them easier to customize/override/improve.

The core styles for layout and functionality could be in a required angular-grid.css file, and the themess as optional files eg. angular-grid-fresh-theme.css would make theming a snap.

How to handle filtering with infinite scroll

Hello,

I am working on using Angular Grid for a particular feature where I will send the grid a large amount of data from a server call. If infinite scrolling is in place, I need a way for the grid to be able to filter on my entire data set, not just rows 1-1000, for example. When using other grid libraries, I implemented this by setting up the filter options through running a specific query to return the filter options for that specific column. I tried this methodology within Angular Grid using the customs filter, yet was unsuccessful in writing the getGui function (the html i sent the function was not able to recognize my data variables.

Any suggestions on how I should proceed?

Thank you!

-Billy

cellRenderer with ng-click not firing

Hi.

I'm wondering if you can help me. I've got a cellRenderer function that creates a hyperlink. I need to fire a ng-click action on the hyperlink. The function for my click is in my controller.

ng-click="groupClick('test')" or ng-click="search.groupClick('test')" ---- doesn't fire

Any help appreciated.

Vinny

Bootstrap integration

How is it possible to use bootstrap for grid styling? Then this grid will fit perfectly into rest of application.

Bower & NPM

Please register this in Bower and NPM. I would love to consume it right away!

[FEAT] Totalizer row

Hi,

It would be great to have a totalizer row, which shows the aggregate data of all rows, like this:

angulargrid-totalizer

Regards
Pablo García

Server side filtering and sorting

Is there a way to achieve this? I'm thinking the getRows function in the datasource can be extended to include the filter and sorting parameters

[FEAT] Force fill column widths

The ability to determine if the total column widths are < than the width of the grid, it would be nice to fill the columns to equal the grid width. http://www.screencast.com/t/DLuA5bQWzhO

Ember table supports this:
http://addepar.github.io/ember-table/#/ember-table/documentation

So does my grid:
https://github.com/Swimlane/angular-table/blob/master/src/table.js#L96

The tricky part is dealing with when a user resizes a column after a force fill but then resizes the table to be greater than the widths again ;)

[FEAT] Pagination

Virtual/Infinite scrolling is awesome but sometimes you need to give perspective to where you are at in the actual page structure so a user can leave and come back and easily find the item they were viewing.

I've implemented something like this on https://github.com/Swimlane/ng-table but I'd love to work with you to integrate this into your grid to make the ultimate grid! :)

Expand All/Collapse All don't work when grouped + filtered

Hi, impressive grid! Thanks for sharing it with the community.

I was playing with your "Test Drive" page and found a bug with it.

Here is how to reproduce it on the Test Drive page:

  1. Enter text to filter by in the "Filter..." input. I used "Sophie".
  2. Select a property to Group By. I used "Language".
  3. Try to click Expand All or Collapse All. Nothing happens.

init table from click does not work

this is simple demo you have
// body...
$scope.columnDefs = [
{displayName: "Make", field: "make"},
{displayName: "Model", field: "model"},
{displayName: "Price", field: "price"}
];

$scope.rowData = [
    {make: "Toyota", model: "Celica", price: 35000},
    {make: "Ford", model: "Mondeo", price: 32000},
    {make: "Porsche", model: "Boxter", price: 72000}
];

$scope.gridOptions = {
    columnDefs: $scope.columnDefs,
    rowData: $scope.rowData,
    dontUseScrolls: true // because so little data, no need to use scroll bars
};

if move it into function then it does not work anymore

var module = angular.module("example", ["angularGrid"]);

module.controller("exampleCtrl", function($scope) {

$scope.showgrid = function (argument) {
console.log('init table');
// body...
$scope.columnDefs = [
{displayName: "Make", field: "make"},
{displayName: "Model", field: "model"},
{displayName: "Price", field: "price"}
];

$scope.rowData = [
    {make: "Toyota", model: "Celica", price: 35000},
    {make: "Ford", model: "Mondeo", price: 32000},
    {make: "Porsche", model: "Boxter", price: 72000}
];

$scope.gridOptions = {
    columnDefs: $scope.columnDefs,
    rowData: $scope.rowData,
    dontUseScrolls: true // because so little data, no need to use scroll bars
};

}

});
function on click is called but no table generated.

state version inside js

Hi,

Great module! I'm just starting to integrate it into my app, hoping that it will go smooth.
Can you please state the version number on the top of the js file? It confuses me when I don't know if I should upgrade or if i have the latest...

Thanks!

[FEAT] Expandable rows

One of my favorite features in ng-grid (and kendoUI grid) is the expandable grid.
Can this be achieved with the current API?

[scrolling] Scrolling doesn't behave natively, and sometimes scrolls the browser window

Playing around with the demos on angulargrid.com, I noticed that the mouse wheel scroll behavior is odd. I'm on a Mac using Chrome 41.0.2272.104 and a Magic Mouse. The built-in browser (OS?) scrolling behavior includes acceleration and deceleration, but those don't happen inside the grid.

The other problem (possibly related) is that scrolling with the mouse wheel inside the grid works for a short time, and then the entire browser window scrolls, and I have to scroll back up to see the grid.

Edit: It looks like this is called "inertial scrolling" or "momentum scrolling". Some links that might help:
http://stackoverflow.com/questions/4339196/how-to-detect-disable-inertial-scrolling-in-mac-safari
http://www.hnldesign.nl/work/code/momentum-scrolling-using-jquery/ (jquery, but maybe still informative)

Multi-selection is not as expected

When I set to multi select, when clicking a new row i would expect it to deselect the previous one. Perhaps, checkboxes would be a ideal solution for this too?

[FEAT] Selection API improvements

Would like an option keepLastSelected that would allow de-selection of the selected row in "single" selection mode when the selected row is clicked.

Allow standard browser selection mode (for copy/paste)

I will frequently browse a grid, and see something I want to copy (for a subsequent "paste" into another application) in a cell or maybe multiple cells. Seems like that's not supported in this grid: I can't select anything for copy/paste. If I'm right, then I'd like to make a request to get that functionality added somehow!

[BUG] Headers in firefox are not shown

Hi!

I've been testing your grid with some browsers, and it seems that headers in Firefox are not being shown (probably a z-index issue of the layer).

angulargrid firefox headers

Regards
Pablo García

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.