Mah*_*bar 5 c# telerik kendo-grid kendo-asp.net-mvc asp.net-mvc-5
我有一个模型,其中包含另一个模型的数据类型列表的属性,如下所示.
public class Eatables
{
int id {get;set;}
string name{get;set;}
List<Ingredient> ingredientList{get;set;}
}
public class Ingredient
{
int id {get;set;}
quantity {get;set;}
calories {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
如果我想根据剑道标题下方显示所需食材的食物清单.
SL.No | Eatable | Sugar(KG) | Salt(gram) | Oil(L)
Run Code Online (Sandbox Code Playgroud)
如果糖成分id为2且盐成分id为4,我将可食用物列表传递给显示剑道列表的视图,我在下面的列绑定LINQ查询下获取成分的数量,如下所示.
columns.Bound(x => x.ingredientList.Find(x=>x.id=="2").quantity) -- to fetch sugar quantity
columns.Bound(x => x.ingredientList.Find(x=>x.id=="4").quantity) -- to fetch salt quantity
Run Code Online (Sandbox Code Playgroud)
但是上述查询并未获取数量,尽管这些值在从控制器发送的模型中可用.请建议如果我错过任何查询,那一天我在迷宫中解决问题.
正如评论中提到的,处理此问题的一种方法是扁平化模型,因为剑道网格被设计为处理扁平数据。假设我们将使用 ViewModel EatableSSOVM
public class EatableSSOViewModel
{
public int id {get;set;}
public string name{get;set;}
public string sugar {get; set;}
public string salt{get; set;}
public string oil{get; set;}
}
Run Code Online (Sandbox Code Playgroud)
使用 LINQ 进行映射查询糖、盐和油的值并将网格绑定到List<EatableSSOViewModel>
然而,根据此链接讨论网格的客户端模板,一种选择可能是执行以下操作
columns.Template( @<text>
@item.ingredientList.Find(x=>x.id=="2").quantity
</text>
);
Run Code Online (Sandbox Code Playgroud)
在模板内,您可以编写 Razor 语法,并执行许多操作,从而生成列可以绑定到的字符串输入。
| 归档时间: |
|
| 查看次数: |
822 次 |
| 最近记录: |