DevExpress v24.2 Update — Your Feedback Matters
Our What's New in v24.2 webpage includes product-specific surveys. Your response to our survey questions will help us measure product satisfaction for features released in this major update and help us refine our plans for our next major release.
Take the survey
Not interested
DxGridSelectionColumn.FilterRowCellTemplate Property
Specifies a template for the selection column’s filter row cell.
Namespace : DevExpress.Blazor
Assembly :
DevExpress.Blazor.v24.2.dll
NuGet Package :
DevExpress.Blazor
# Declaration
# Property Value
A selection column allows users to select and deselect rows. This column contains checkboxes or radio buttons depending on selection mode .
The selection column’s cell located in the filter row is empty. You can define the FilterRowCellTemplate
to display custom content in this cell. Use the template’s context
parameter to access SelectionColumn and Grid objects.
The following code snippet hides the predefined Select All checkbox from the selection column header and display the custom Select All button in the filter row cell.
@using Microsoft.EntityFrameworkCore
@inject IDbContextFactory<NorthwindContext> NorthwindContextFactory
@ implements IDisposable
<DxGrid Data ="GridDataSource"
@bind-SelectedDataItems ="@ SelectedDataItems"
KeyFieldName ="ProductId"
@ref ="MyGrid"
ShowFilterRow ="true" >
<Columns >
<DxGridSelectionColumn AllowSelectAll ="false" >
<FilterRowCellTemplate >
<DxButton Click ="() => MyGrid.SelectAllOnPage()" Text ="Select All"
RenderStyle ="ButtonRenderStyle.Link" />
</FilterRowCellTemplate >
</DxGridSelectionColumn >
<DxGridDataColumn FieldName ="ProductName" Width ="250" / >
<DxGridDataColumn FieldName ="UnitPrice" />
<DxGridDataColumn FieldName ="QuantityPerUnit" />
<DxGridDataColumn FieldName ="UnitsInStock" />
<DxGridCommandColumn NewButtonVisible ="false" DeleteButtonVisible ="false"
EditButtonVisible ="false" />
</Columns >
</DxGrid >
@ code {
IEnumerable<object > GridDataSource { get ; set ; }
NorthwindContext Northwind { get ; set ; }
IReadOnlyList<object > SelectedDataItems { get ; set ; }
IGrid MyGrid { get ; set ; }
protected override void OnInitialized ( ) {
Northwind = NorthwindContextFactory.CreateDbContext();
GridDataSource = Northwind.Products.ToList();
SelectedDataItems = GridDataSource.Skip(1 ).Take(2 ).ToList();
}
public void Dispose ( ) {
Northwind?.Dispose();
}
}
using System ;
using System.Collections.Generic ;
#nullable disable
namespace Grid.Northwind {
public partial class Product {
public Product ( ) {
OrderDetails = new HashSet<OrderDetail>();
}
public int ProductId { get ; set ; }
public string ProductName { get ; set ; }
public int ? SupplierId { get ; set ; }
public int ? CategoryId { get ; set ; }
public string QuantityPerUnit { get ; set ; }
public decimal ? UnitPrice { get ; set ; }
public short ? UnitsInStock { get ; set ; }
public short ? UnitsOnOrder { get ; set ; }
public short ? ReorderLevel { get ; set ; }
public bool Discontinued { get ; set ; }
public virtual Category Category { get ; set ; }
public virtual Supplier Supplier { get ; set ; }
public virtual ICollection<OrderDetail> OrderDetails { get ; set ; }
}
}
using Microsoft.EntityFrameworkCore ;
#nullable disable
namespace Grid.Northwind {
public partial class NorthwindContext : DbContext {
public NorthwindContext (DbContextOptions<NorthwindContext> options )
: base (options ) {
}
public virtual DbSet<Product> Products { get ; set ; }
protected override void OnConfiguring (DbContextOptionsBuilder optionsBuilder ) {
if (!optionsBuilder.IsConfigured) {
optionsBuilder.UseSqlServer("Server=.\\sqlexpress;Database=Northwind;Integrated Security=true" );
}
}
protected override void OnModelCreating (ModelBuilder modelBuilder ) {
modelBuilder.Entity<Product>(entity => {
entity.HasIndex(e => e.CategoryId, "CategoriesProducts" );
entity.HasIndex(e => e.CategoryId, "CategoryID" );
entity.HasIndex(e => e.ProductName, "ProductName" );
entity.HasIndex(e => e.SupplierId, "SupplierID" );
entity.HasIndex(e => e.SupplierId, "SuppliersProducts" );
entity.Property(e => e.ProductId).HasColumnName("ProductID" );
entity.Property(e => e.CategoryId).HasColumnName("CategoryID" );
entity.Property(e => e.ProductName)
.IsRequired()
.HasMaxLength(40 );
entity.Property(e => e.QuantityPerUnit).HasMaxLength(20 );
entity.Property(e => e.ReorderLevel).HasDefaultValueSql("((0))" );
entity.Property(e => e.SupplierId).HasColumnName("SupplierID" );
entity.Property(e => e.UnitPrice)
.HasColumnType("money" )
.HasDefaultValueSql("((0))" );
entity.Property(e => e.UnitsInStock).HasDefaultValueSql("((0))" );
entity.Property(e => e.UnitsOnOrder).HasDefaultValueSql("((0))" );
entity.HasOne(d => d.Category)
.WithMany(p => p.Products)
.HasForeignKey(d => d.CategoryId)
.HasConstraintName("FK_Products_Categories" );
entity.HasOne(d => d.Supplier)
.WithMany(p => p.Products)
.HasForeignKey(d => d.SupplierId)
.HasConstraintName("FK_Products_Suppliers" );
});
OnModelCreatingPartial(modelBuilder);
}
partial void OnModelCreatingPartial (ModelBuilder modelBuilder ) ;
}
}
using Microsoft.EntityFrameworkCore ;
builder.Services.AddDbContextFactory<NorthwindContext>((sp, options) => {
var env = sp.GetRequiredService<IWebHostEnvironment>();
var dbPath = Path.Combine(env.ContentRootPath, "Northwind-5e44b51f.mdf" );
options.UseSqlServer("Server=(localdb)\\MSSQLLocalDB;Integrated Security=true;AttachDbFileName=" + dbPath);
});
View Example: How to implement filter operator selector
For more information, refer to the following topics:
See Also