All Projects → gustavnavar → Grid.blazor

gustavnavar / Grid.blazor

Licence: lgpl-2.1
Grid component with CRUD for Blazor (client-side and server-side) and ASP.NET Core MVC

Projects that are alternatives of or similar to Grid.blazor

react-keyview
React components to display the list, table, and grid, without scrolling, use the keyboard keys to navigate through the data
Stars: ✭ 16 (-95.22%)
Mutual labels:  grid, table
Datatablesbundle
This Bundle integrates the jQuery DataTables plugin into your Symfony application.
Stars: ✭ 334 (-0.3%)
Mutual labels:  grid, table
serilog-enrichers-clientinfo
Enrich logs with client IP and UserAgent.
Stars: ✭ 42 (-87.46%)
Mutual labels:  asp-net-core, asp-net-mvc
Vxe Table
🐬 vxe-table vue 表格解决方案
Stars: ✭ 4,242 (+1166.27%)
Mutual labels:  grid, table
Jqgrid
jQuery grid plugin
Stars: ✭ 2,803 (+736.72%)
Mutual labels:  grid, table
DNZ.MvcComponents
A set of useful UI-Components (HtmlHelper) for ASP.NET Core MVC based-on Popular JavaScript Plugins (Experimental project).
Stars: ✭ 25 (-92.54%)
Mutual labels:  asp-net-core, asp-net-mvc
gridjs-vue
A Vue.js wrapper component for Grid.js
Stars: ✭ 72 (-78.51%)
Mutual labels:  grid, table
streamlit-aggrid
Implementation of Ag-Grid component for Streamlit
Stars: ✭ 465 (+38.81%)
Mutual labels:  grid, table
Gridjs
Advanced table plugin
Stars: ✭ 3,231 (+864.48%)
Mutual labels:  grid, table
ng-mazdik
Angular UI component library
Stars: ✭ 86 (-74.33%)
Mutual labels:  grid, table
Awesome-Nuget-Packages
📦 A collection of awesome and top .NET packages sorted by most popular needs.
Stars: ✭ 87 (-74.03%)
Mutual labels:  asp-net-core, asp-net-mvc
React Tabulator
React Tabulator is based on tabulator - a JS table library with many advanced features.
Stars: ✭ 295 (-11.94%)
Mutual labels:  grid, table
Cake-Shop
A sample Cake Shop Website built with ASP.NET Core (Multi-Page Application)
Stars: ✭ 44 (-86.87%)
Mutual labels:  asp-net-core, asp-net-mvc
ag-grid
The best JavaScript Data Table for building Enterprise Applications. Supports React / Angular / Vue / Plain JavaScript.
Stars: ✭ 8,743 (+2509.85%)
Mutual labels:  grid, table
AspNetCore-Dynamic-Permission
Dynamic Permission Samples in ASP.NET Core and ASP.NET MVC 5.
Stars: ✭ 19 (-94.33%)
Mutual labels:  asp-net-core, asp-net-mvc
jui-grid
JUI grid can handle millions of data, and can display the data in a hierarchical structure.
Stars: ✭ 12 (-96.42%)
Mutual labels:  grid, table
BeeGridTable
BeeGridTable , is a Highly Customizable Table UI component library based on Vue.js. Rich functions、More efficient、Easy to use!
Stars: ✭ 45 (-86.57%)
Mutual labels:  grid, table
CRUD.ASPCore.Reactjs.WebAPI.EF
CRUD Operations in ASP.NET Core application using React.js , Web API and Entity Framework core DB first approach with the help of VS 2017.
Stars: ✭ 80 (-76.12%)
Mutual labels:  crud, asp-net-core
use-table-tools
React Hooks for building kickass react table components
Stars: ✭ 18 (-94.63%)
Mutual labels:  grid, table
React Aspnet Boilerplate
A starting point for building isomorphic React applications with ASP.NET Core, leveraging existing techniques.
Stars: ✭ 285 (-14.93%)
Mutual labels:  asp-net-core, asp-net-mvc

Grid.Blazor

GridBlazor is a Blazor component that shows data in a grid. It requires a back-end component that performs paging, sorting, filtering and others.

This back-end component can be one of the following ones:

  • GridMvcCore, that it is a fork from https://gridmvc.codeplex.com/ supporting ASP.Net Core 3.1 and ASP.Net 5.0
  • an OData back-end. All samples are based on Microsoft.AspNetCore.OData library, but it can be any other OData provider.

It supports .NET Core 3.1 and 5.0, and Blazor WebAssembly 3.2.0 and 5.0

Notes

  • Sorting is implemented on GridBlazor 2.1.2, GridMvcCore 4.1.2 and newer versions following this sequence "no sort" -> "sort ascending" -> "sort descending" -> "no sort" and so on when a column title is clicked

  • GridMvcCore 3.0.0 does not support .Net Core 2.x. It requires .NET Core 3.1

  • GridBlazor 1.6.7 requires a change on the column definition when selecting rows with checkboxes using the SetCheckboxColumn method. It's mandatory to identify the columns that are primary keys for the grid. You must do it using the SetPrimaryKey(true) method for the primary key columns' definitions:

        c.Add("CheckboxColumn").SetCheckboxColumn(true, o => o.Customer.IsVip);
        c.Add(o => o.OrderID).SetPrimaryKey(true);
    
  • GridBlazor 1.6.2 doesn't support the CheckedRows property anymore. CheckedRows only allowed to retrieve the checked values, but not to change them. Use the Checkboxes property instead of it.

  • GridBlazor 1.5.0 supports OData server back-ends for Blazor WA applications. More info here

  • Versions before GridBlazor 1.3.9 had the keyboard navigation enabled by default. This feature requires to focus on the grid element, but it can create problems when used on pages with 2 or more grids. As a consequence, starting with version 1.3.9 it has to be explicitly configured for each grid that requires keyboard navigation. Users can enable keyboard navigation between pages using the SetKeyboard method of the GridClient object:

        var client = new GridClient<Order>( ... ).SetKeyboard(true);
    
  • Grid components have been moved to GridBlazor.Pages folder in GridBlazor 1.3.2. You must add a reference to this namespace in the _Imports.razor:

        @using GridBlazor.Pages
    
  • Blazor Server App require these changes on to the _Host.cshtml file for .Net Core 3.1:

        <link href="_content/GridBlazor/css/gridblazor.min.css" rel="stylesheet" />
        <script src="_content/GridBlazor/js/gridblazor.js"></script>
    
  • Blazor WebAssembly projects require these changes on to the wwwroot/index.html file for version 3.2.0 Preview 1:

        <link href="_content/GridBlazor/css/gridblazor.min.css" rel="stylesheet" />
        <script src="_content/GridBlazor/js/gridblazor.js"></script>
    
  • Blazor WebAssembly projects require to use a new constructor of the GridClient object including an HttpClient object from Dependency Injection for .Net Core 3.1:

        @page "/..."
        @inject HttpClient httpClient
    
        ...
    
        protected override async Task OnParametersSetAsync()
        {
            ...
            var client = new GridClient<Order>(httpClient, url, query, false, "ordersGrid", Columns);
            ...
        }
    
    
  • The button to clear all filters is disabled by default starting from GridBlazor version 1.3.6. You can enable it using the ClearFiltersButton method of the GridClient object:

        var client = new GridClient<Order>(httpClient, url, query, false, "ordersGrid", Columns).ClearFiltersButton(true);
    

Demo

Change Log

https://github.com/gustavnavar/Grid.Blazor/releases

Folder description

The SQL Server database for all demos can be downloaded from here

Alternatively, if you prefer to install a fresh version of the database you can perform the following steps:

  • run this script from Microsoft web to create a new database: https://github.com/microsoft/sql-server-samples/blob/master/samples/databases/northwind-pubs/instnwnd.sql
  • add a column to the Customers table with the name IsVip of type bit (NOT NULL) and default value 0:
        USE Northwind;
        ALTER TABLE dbo.Customers ADD IsVip bit NOT NULL DEFAULT 0 WITH VALUES;
        GO
    
  • change manually some values of the new IsVip column to True
  • review the datetime columns. Any mismatch between EF Core model and database definitions will produce an exception and filtering will not work as expected. If database columns are defined as datetime you must modify the NorthwindDbContext class including:
        modelBuilder.Entity<Order>().Property(r => r.OrderDate).HasColumnType("datetime");
    
    for each datetime column. Or you can change all database columns' type to datetime2(7).

Documentation

There are native C# Grid components for Blazor client-side and server-side, and for ASP.NET Core MVC.

You can find the specific documentation for each environment clicking the following links:

This is an example of a table of items using this component:

Image of GridBlazor

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].