首页 > 解决方案 > Blazor 的 Telerik UI:在代码中将项目添加到网格

问题描述

Telerik Grid for Blazor,如何通过代码添加一行。应该很容易,但我在任何地方都找不到直接的答案。这是我的网格:

                    <TelerikGrid Data=@GridPallets
                                 Height="200px"
                                 FilterMode="@GridFilterMode.None"
                                 Sortable=true
                                 Pageable=true>
                        <GridColumns>
                            <GridColumn Field=@nameof(PalletGridModel.Type) />
                            <GridColumn Field=@nameof(PalletGridModel.Quantity) />
                            <GridColumn Field=@nameof(PalletGridModel.Weight) />
                            <GridColumn Field=@nameof(PalletGridModel.DeliveryCharge) Title="Delivery Charge" />
                            <GridColumn Field=@nameof(PalletGridModel.HubCharge) Title="Hub Charge" />
                        </GridColumns>
                    </TelerikGrid>

这是同一页面上的一些代码,用于创建要添加到网格的新项目:

PalletGridModel pgm = new PalletGridModel();

pgm.DeliveryCharge = palletType == "QTR" ? 10 : palletType == "HALF" ? 20 : palletType == "FULL" ? 30 : 40;
pgm.HubCharge = palletType == "QTR" ? 4 : palletType == "HALF" ? 5 : palletType == "FULL" ? 6 : 10;
pgm.Quantity = quantity;
pgm.Type = palletType;
pgm.Weight = weight;

之后我尝试将新项目添加到网格的所有操作都不起作用 - 从使用简单的 list.add(item) 将项目添加到网格数据到尝试使用网格的更新处理程序 - 但到目前为止,没有任何效果。像这样简单明了的事情肯定不会这么困难吗?

标签: blazortelerik-gridblazor-webassemblytelerik-blazor

解决方案


在 Telerik 的帮助下,我现在有了一个很好的答案。使用对象模型:

@using System.Collections.ObjectModel

将网格的集合类型设置为可观察:

<TelerikGrid Data=@GridPallets ...
public ObservableCollection<Models.PalletGridModel> GridPallets { get; set; }

有一个用于修改网格值的列表:

public List<Models.PalletGridModel> GridSourceData { get; set; } = new List<PalletGridModel>();

修改备用列表:

PalletGridModel pgm = new PalletGridModel();
{set values}
GridSourceData.Add(pgm);

设置实际的网格源:

GridPallets = new ObservableCollection<Models.PalletGridModel>(GridSourceData);

推荐阅读