Product Bundles
DevCraft
All Telerik .NET tools and Kendo UI JavaScript components in one package. Now enhanced with:
Web
Mobile
Document Management
Desktop
Reporting
Testing & Mocking
CMS
AI Productivity Tools
UI/UX Tools
Debugging
Free Tools
Support and Learning
Docs & Resources
Productivity and Design Tools
Hi David,
You can hide the close ("X") button on the Grid Edit Popup by using a small CSS rule. Here’s how to achieve this:
@using System.ComponentModel.DataAnnotations @using Telerik.DataSource @using Telerik.DataSource.Extensions <style> .hide-button .k-window-titlebar-actions { display: none; } </style> <TelerikGrid OnRead="@OnGridRead" TItem="@Product" EditMode="@GridEditMode.Popup" OnCreate="@OnGridCreate" OnDelete="@OnGridDelete" OnUpdate="@OnGridUpdate"> <GridSettings> <GridPopupEditSettings Class="hide-button" /> </GridSettings> <GridToolBarTemplate> <GridCommandButton Command="Add">Add Item</GridCommandButton> </GridToolBarTemplate> <GridColumns> <GridColumn Field="@nameof(Product.Name)" /> <GridColumn Field="@nameof(Product.Price)" DisplayFormat="{0:C2}" /> <GridColumn Field="@nameof(Product.Quantity)" DisplayFormat="{0:N0}" /> <GridColumn Field="@nameof(Product.ReleaseDate)" DisplayFormat="{0:d}" /> <GridColumn Field="@nameof(Product.Discontinued)" Width="120px" /> <GridCommandColumn Width="180px"> <GridCommandButton Command="Edit">Edit</GridCommandButton> <GridCommandButton Command="Delete">Delete</GridCommandButton> </GridCommandColumn> </GridColumns> </TelerikGrid> @code { private ProductService GridProductService { get; set; } = new(); private async Task OnGridCreate(GridCommandEventArgs args) { var createdItem = (Product)args.Item; await GridProductService.Create(createdItem); } private async Task OnGridDelete(GridCommandEventArgs args) { var deletedItem = (Product)args.Item; await GridProductService.Delete(deletedItem); } private async Task OnGridRead(GridReadEventArgs args) { DataSourceResult result = await GridProductService.Read(args.Request); args.Data = result.Data; args.Total = result.Total; args.AggregateResults = result.AggregateResults; } private async Task OnGridUpdate(GridCommandEventArgs args) { var updatedItem = (Product)args.Item; await GridProductService.Update(updatedItem); } public class Product { public int Id { get; set; } [Required] public string Name { get; set; } = string.Empty; public string Description { get; set; } = string.Empty; public decimal? Price { get; set; } public int Quantity { get; set; } [Required] public DateTime? ReleaseDate { get; set; } public bool Discontinued { get; set; } } #region Data Service public class ProductService { private List<Product> Items { get; set; } = new(); private int LastId { get; set; } public async Task<int> Create(Product product) { await SimulateAsyncOperation(); product.Id = ++LastId; Items.Insert(0, product); return LastId; } public async Task<bool> Delete(Product product) { await SimulateAsyncOperation(); if (Items.Contains(product)) { Items.Remove(product); return true; } return false; } public async Task<List<Product>> Read() { await SimulateAsyncOperation(); return Items; } public async Task<DataSourceResult> Read(DataSourceRequest request) { return await Items.ToDataSourceResultAsync(request); } public async Task<bool> Update(Product product) { await SimulateAsyncOperation(); int originalItemIndex = Items.FindIndex(x => x.Id == product.Id); if (originalItemIndex != -1) { Items[originalItemIndex] = product; return true; } return false; } private async Task SimulateAsyncOperation() { await Task.Delay(100); } public ProductService(int itemCount = 5) { Random rnd = Random.Shared; for (int i = 1; i <= itemCount; i++) { Items.Add(new Product() { Id = ++LastId, Name = $"Product {LastId}", Description = $"Multi-line\ndescription {LastId}", Price = LastId % 2 == 0 ? null : rnd.Next(0, 100) * 1.23m, Quantity = LastId % 2 == 0 ? 0 : rnd.Next(0, 3000), ReleaseDate = DateTime.Today.AddDays(-rnd.Next(365, 3650)), Discontinued = LastId % 2 == 0 }); } } } #endregion Data Service }
Regards, Hristian Stefanov Progress Telerik
Love the Telerik and Kendo UI products and believe more people should try them? Invite a fellow developer to become a Progress customer and each of you can get a $50 Amazon gift voucher.