.net 在Muddatagrid中实现删除特定记录的函数

yquaqz18  于 2023-02-26  发布在  .NET
关注(0)|答案(1)|浏览(150)

如何在mudblazor中实现一个函数来删除数据网格中的一条特定记录?我实现了数据网格,并努力获取需要删除的记录的id。如何使用函数来实现?

<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>
wz3gfoph

wz3gfoph1#

从元素中移除项目并触发重新渲染。你从错误的一端接近它,否则它相当简单。
下面是一个如何从MudDataGrid中删除行的工作示例:https://try.mudblazor.com/snippet/wkmRYGwOoxVtLoaC
Main.razor:

@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);
    }

}

Element.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来检索与当前行关联的元素项。

相关问题