blazor - 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) 将项目添加到网格数据到尝试使用网格的更新处理程序 - 但到目前为止,没有任何效果。像这样简单明了的事情肯定不会这么困难吗?
解决方案
在 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);
推荐阅读
- firebase - Flutter 和 Firebase:从 Firebase 中的数组中删除项目(地图)
- javascript - 如何根据 createdAt 显示数组的最后 2 个元素
- xcode - 在邻居的 ipad 上部署 xamarin 表单应用程序失败
- swift - Xcode 11.4.1 Core Data 模型无法识别
- kotlin - 如何在 Kotlin 中安全地进行转换(无空转换)
- java - 如何在 Java Web 应用程序中适当地配置服务器、XML 和 JSP 文件?
- c++ - 无法显式实例化模板类
- webgl2 - 如何在 WebGL2 中创建内部格式为“RG8UI”的纹理?
- sql - 如果我更喜欢使用 raw 而不是其内置功能,那么使用 Knex 是否毫无意义?
- r-markdown - 如何使用 loveit 主题和 blogdown 制作浮动目录