Inicio
PERENDERnew
Tema
Form
Componentes básicos
Visor de PDF
chartsnew
Instalación
line
Explorador de archivos
Texto enriquecido
Grid

1. Demo AstrolGrid

Nota
En este ejemplo se implementan confirmaciones, notificaciones y botones, por lo que se recomienda ver la documentación de los mismos.
Id
Full name texto mas largo de ejemplo en un tabla ast
Points
Maritial status
Sex
Age
Date
1
Juan Pérez
34,56
Widower
True
25
1/1/2022 0:00:00
2
María García
23,14
Married
False
32
15/3/2021 0:00:00
3
Pedro Rodríguez
36,32
Single
True
45
30/6/2020 0:00:00
4
Laura Fernández
56,09
Divorced
False
19
28/2/2022 0:00:00
5
Carlos Sánchez
12,05
Married
True
56
1/12/2019 0:00:00
página de 4
@using Astrol.Component.Basic.Grid
@using Astrol.Component.Basic.Button
@using Astrol.Component.Basic.Confirm
@using Astrol.Entities.Basic.UI.Grid
@using Astrol.Entities.Basic.Response
@using Astrol.Entities.Basic.Static.Notification
@using Astrol.Entities.Basic.UI
@using Astrol.JSInterop.Base
@inject AstrolJSInterop jsI
 
<AstrolConfirm @ref="_conf" />
<AstrolGrid TItem="Client" PageSize="5" Data="dataList" @ref="_grid">
 <Columns>
 <Column Name="@nameof(Client.Id)" Title="Id" Width="20px" Sortable="true">
 @{<span>@context.Id</span>}
 </Column>
 <Column Name="@nameof(Client.FullName)" Title="Full name" Sortable="true" Filtrable="true" />
 <Column ClassHead="blue-head" ClassRow="blue-row" Name="@nameof(Client.Points)" Title="Points" Sortable="true" Filtrable="true" />
 <Column Name="@nameof(Client.MaritialStatus)" Title="Maritial status" Sortable="true" Filtrable="true" />
 <Column Name="@nameof(Client.Sex)" Title="Sex" Width="80px" Sortable="true" Filtrable="true" />
 <Column Name="@nameof(Client.Age)" Title="Age" Sortable="false" Filtrable="true" />
 <Column Name="@nameof(Client.RegistrationDate)" Title="Date" Sortable="true" Filtrable="true" />
 <Column Title="Options" Width="30px">
 <AstrolButton Icon="astrol-trash" Style="AstrolStyle.Red" OnClick="x=>DeleteItem(context)" />
 </Column>
 </Columns>
</AstrolGrid>
<style>
 .blue-head {
 background: #0094ff31;
 }
 .blue-row {
 background: #0094ff12;
 }
</style>
@code {
 private AstrolGrid<Client> _grid;
 private AstrolConfirm _conf;
 private List<Client> dataList = new List<Client> {
 new Client { Id = 1, Points= 34.56F, Name = "Juan", Surnames = "Pérez", Sex = true, MaritialStatus = MaritialStatus.Widower, Age = 25, RegistrationDate = new DateTime(2022, 1, 1) },
 new Client { Id = 2, Points= 23.14F, Name = "María", Surnames = "García", Sex = false, MaritialStatus = MaritialStatus.Married, Age = 32, RegistrationDate = new DateTime(2021, 3, 15) },
 new Client { Id = 3, Points= 36.32F, Name = "Pedro", Surnames = "Rodríguez", Sex = true, Age = 45, MaritialStatus = MaritialStatus.Single, RegistrationDate = new DateTime(2020, 6, 30) },
 new Client { Id = 4, Points= 56.09F , Name = "Laura", Surnames = "Fernández", Sex = false, Age = 19, MaritialStatus = MaritialStatus.Divorced,RegistrationDate = new DateTime(2022, 2, 28) },
 new Client { Id = 5, Points= 12.05F, Name = "Carlos", Surnames = "Sánchez", Sex = true, Age = 56,MaritialStatus = MaritialStatus.Married, RegistrationDate = new DateTime(2019, 12, 1) },
 new Client { Id = 6,Points= 15.26F, Name = "Ana", Surnames = "Gómez", Age = 29, Sex = false, RegistrationDate = new DateTime(2021, 7, 10) },
 new Client { Id = 7,Points= 14.34F , Name = "Pablo", Surnames = "Martínez", Sex = true, Age = 41, MaritialStatus = MaritialStatus.Married, RegistrationDate = new DateTime(2022, 4, 5) },
 new Client { Id = 8,Points= 5.2F, Name = "Lucía", Surnames = "Jiménez", Age = 22,Sex = false, RegistrationDate = new DateTime(2023, 1, 2) },
 new Client { Id = 9,Points= 88.53F, Name = "Javier", Surnames = "Hernández",Sex = true, Age = 37,MaritialStatus = MaritialStatus.Married, RegistrationDate = new DateTime(2022, 9, 15) },
 new Client { Id = 10,Points= 45.23F , Name = "Sofía", Surnames = "Ruiz",Sex = false, Age = 28, RegistrationDate = new DateTime(2023, 3, 20) },
 new Client { Id = 11,Points= 32.54F, Name = "Miguel", Surnames = "López",Sex = true, Age = 60, MaritialStatus = MaritialStatus.Other, RegistrationDate = new DateTime(2020, 5, 11) },
 new Client { Id = 12,Points= 14.52F, Name = "Carmen", Surnames = "González",Sex = false, Age = 31, RegistrationDate = new DateTime(2021, 11, 16) },
 new Client { Id = 13,Points= 78.8F, Name = "Antonio", Surnames = "Santos",Sex = true, Age = 48, RegistrationDate = new DateTime(2020, 3, 7) },
 new Client { Id = 14,Points= 65.456F, Name = "Isabel", Surnames = "Ortega",Sex = false, Age = 20,MaritialStatus = MaritialStatus.Other, RegistrationDate = new DateTime(2022, 7, 31) },
 new Client { Id = 15,Points= 56, Name = "David", Surnames = "Ramírez",Sex = true,Age = 43, RegistrationDate = new DateTime(2019, 10, 25) },
 new Client { Id = 16,Points= 34.01F, Name = "Raquel", Surnames = "Pardo",Sex = false, Age = 26,MaritialStatus = MaritialStatus.Other, RegistrationDate = new DateTime(2021, 2, 14) },
 };
 private async Task DeleteItem(Client item) {
 var confirmed = await _conf.Confirmation("Are you sure?", "You want to delete the item..");
 if (confirmed) {
 dataList.Remove(item);
 await jsI.Notification("Item removed successfully.".NotificationError());
 await _grid.RefreshGrid();
 }
 }
 public class Client {
 public int Id { get; set; }
 public string? Name { get; set; }
 public bool Sex { get; set; }
 public string? Surnames { get; set; }
 public int Age { get; set; }
 public float Points { get; set; }
 public DateTime RegistrationDate { get; set; }
 public MaritialStatus MaritialStatus { get; set; }
 public string FullName => $"{Name} {Surnames}";
 }
 public enum MaritialStatus {
 Single,
 Married,
 Divorced,
 Widower,
 Other
 }
}

Parámetros que admite

  • TItem (objeto), objeto que se representara en el grid.
  • Data (IList<TItem>), lista de objetos TItem a representar (no reqeurido) se usa para cargas estáticas de datos.
  • ShowLoad (bool), para personalizar cuando desea que el gris muestra la animacion de cargando.
  • IconLoad (bool), ícono a mostrar (si no se establece por defecto es astrol-spin1 ).
  • Pageable (bool), si desea que el grid tenga paginado (por defecto es true).
  • Selectable (bool), para especificar si las filas del grid son seleccionables (por defecto es false).
  • PageSize (int), cantidad de elementos por página (por defecto es 10).
  • OnSelected (EventCallback<List<TItem>>), evento que se detona si el gris es Selectable y seleccionan una fila. Recibe la lista de objetos seleccionados por el usuario.
  • NoSearchResultText (string), texto a mostrar cuando no se encuentran resultados (por defecto es No se han encontrado elementos.
  • PagePaginationText (string), texto a mostrar en la palabra página del paginado (por defecto es página.
  • OfPaginationText (string), texto a mostrar en la palabra de del paginado (por defecto es de.
  • PageSizePaginationText (string), texto a mostrar en las palabras Tamaño de página del paginado (por defecto es Tamaño de página.
  • ItemPaginationText (string), texto a mostrar en la palabra elementos del paginado (por defecto es elementos.
  • AllPaginationText (string), texto a mostrar en la palabra Todos del paginado (por defecto es Todos.
  • PageSizeList (List<int>), lista donde establece la cantidad de elementos que desea que el usuario pueda solicitar por página (por defecto es { 5, 10, 20, 50, 100, int.MaxValue }.
  • Columns (RenderFragment), espacio para representar las columnas (<Column />) del grid.
    • Name (string): nombre de la propiedad a representar
    • Title (string): texto a mostrar en la cabecera de la columna
    • Width (string): ancho de la columna
    • Sortable (bool): si la columna va a tener ordenamiento
    • Filtrable (bool): si la columna va a tener filtro
    • FilterPlaceholder (string): texto placeholder a mostrar en el filtro
    • TypeOf (Type): permite definer el componente del filtro según el tipo de dato ejemplo typeof(DateOnly)
    • ClassHead (string): clase css con el fin de personalizar el estilo de la cabecera de la columna correspondiente del grid
    • ClassRow (string): clase css con el fin de personalizar el estilo de la celda correspondiente a la columna del grid
    • DefaultValue (object): permite establecer un valor por defecto al filtro de la columna
  • Options (RenderFragment), espacio para definir las opciones que desea que tenga el grid.
  • ReadItems (EventCallback<GridResponse<TItem>>), evento que permite obtener el estado actual de la configuración del Grid mediante la la entidad AstrolPaginatedResponse<TItem>, permite realizar una carga personalizada a tu API (no reqeurido).
    • GridResponse<TItem> (objeto):
      • Page (int): página actual
      • PageSize (int) cantidad de elementos por página
      • SortInfo (objeto):
        • ColumnSort (string): nombre de la propiedad TItem por la que ordena
        • SortDirection (enum):
          • None
          • Ascending
          • Descending
      • FilterInfo (List<FilterInfo>):
        • ColumnFilter (string): nombre de la propiedad TItem por la que se filtra
        • ValueFilter (string): valor del filtro
    • AstrolPaginatedResponse<TItem> (objeto)
      • TotalItems (int): cantidad de elementos
      • PageItems (IEnumerable<TItem>): lista de elementos a representar en una página

2. Demo AstrolGrid seleccionable con opciones

Nota
En este ejemplo se simula la carga de datos desde el servidor, es seleccionable por filas y se deshabilitó el filtrado de datos por columnas.
Id
Full name
Points
Maritial status
Sex
Age
Date
1
Juan Pérez
34,56
Widower
True
25
1/1/2022 0:00:00
2
María García
23,14
Married
False
32
15/3/2021 0:00:00
3
Pedro Rodríguez
36,32
Single
True
45
30/6/2020 0:00:00
4
Laura Fernández
56,09
Divorced
False
19
28/2/2022 0:00:00
5
Carlos Sánchez
12,05
Married
True
56
1/12/2019 0:00:00
página de 4
© 2025 AstrolUI v8.0.4
Se ha producido un error no controlado. Recargar 🗙