как я могу реализовать функцию удаления определенной записи в сетке данных в Mudblazor? Я реализовал сетку данных и изо всех сил пытался получить идентификатор записи, которую мне нужно удалить. Как я могу сделать это с помощью функции?
<MudItem xs = "12" Class = "pt-0">
<div id = "unique_id_scroll_section" class = "ma-0" style = "height:200px;overflow: auto">
<MudDataGrid Items = "@Elements" Hover = "true" Striped = "true" Dense = "true">
<Columns>
<Column T = "Menuitemlist" StickyLeft = "true">
<CellTemplate>
<MudIconButton OnClick = "@(() => PrcdBtnClick())" Color = "@Color.Default" Icon = "@Icons.Material.Filled.Delete" />
</CellTemplate>
</Column>
<Column T = "Menuitemlist" Field = "ItemName" Title = "Name" />
<Column T = "Menuitemlist" Title = "Qty" Style = "width:10px" />
<Column T = "Menuitemlist" Field = "OptionalSalesPrice" Title = "Price" Style = "width:10px" />
<Column T = "Menuitemlist" Title = "Total" Style = "width:10px" /></Columns>
</MudDataGrid>
</div>
</MudItem>
Удалите элемент из Elements и запустите повторную визуализацию. Вы подходите к нему не с того конца, в остальном все довольно просто.
Вот вам рабочий пример удаления строки из MudDataGrid: https://try.mudblazor.com/snippet/wkmRYGwOoxVtLoaC
Основная.бритва:
@using Models
<MudItem xs = "12" Class = "pt-0">
<div id = "unique_id_scroll_section" class = "ma-0" style = "height:200px;overflow: auto">
<MudDataGrid Items = "@Elements" Hover = "true" Striped = "true" Dense = "true">
<Columns>
<Column T = "Element" StickyLeft = "true">
<CellTemplate>
<MudIconButton OnClick = "@(() => PrcdBtnClick(@context.Item))" Color = "@Color.Default" Icon = "@Icons.Material.Filled.Delete" />
</CellTemplate>
</Column>
<Column T = "Element" Field = "Name" />
</Columns>
</MudDataGrid>
</div>
</MudItem>
@code {
private IEnumerable<Element> Elements = new List<Element>(){new Element("Uranium"), new Element("Radium"), new Element("Cobalt")};
private void PrcdBtnClick(Element x)
{
Elements = Elements.Where(u => u.Name != x.Name);
}
}
Элемент.cs:
using System.Collections.Generic;
using System.Text.Json.Serialization;
namespace Models
{
public class Element
{
public string Group { get; set; } = "Group";
public int Position { get; set; } = 1;
public string Name { get; set; } = "Plutonium";
public int Number { get; set; }
[JsonPropertyName("small")]
public string Sign { get; set; } = "Piesces";
public double Molar { get; set; } = 6.9;
public IList<int> Electrons { get; set; }
public override string ToString()
{
return $"{Sign} - {Name}";
}
public Element(string name)
{
Name = name;
}
}
}
Вам нужно использовать @context.Item для получения элемента элементов, связанных с текущей строкой.
Спасибо за помощь, приятель. Это сработало. Можете ли вы дать мне решение, чтобы уменьшить размер столбца этой сетки данных?
Это нормально. Просто задайте другой вопрос с тегом "Blazor", и я посмотрю, что смогу сделать. Так будет хоть какой-то порядок. Вы можете связать эту тему.
Добавлено редактирование @Danul Hivi.