我有一个动态“属性”的模型(在DB级别,类似于
Entity-Attribute-Value系统).
这些属性位于Dictionary< int,string>的字段中,并希望将它们显示在列中.
这些属性位于Dictionary< int,string>的字段中,并希望将它们显示在列中.
模型:
该模型具有“属性”名称的静态数组(在静态反演器中初始化).键:
public static ModelSpecialParameter[] SpecialFields;
和一个字典(在模型创建中初始化,并添加所有可用的键)及其值.
public Dictionary<int,string> ValuesForDynamicProps;
风景:
@(Html.Kendo().Grid(Model) .Name("grid") .Columns(columns => { //other columns for realy propertry //columns.Bound(e => ... //columns.Bound(e => ... foreach (var item in SpecialFields) // SpecialFields is a static collection. represent the name an id of the dynamic property's. { columns.Bound("ValuesForDynamicProps[" + item.IdProperty + "]").Width(140).Title(item.DisplayName); } }
我收到一个错误:
{“Bound columns require a field or property access expression.”}
我也尝试过:
columns.Bound(e => e.ValuesForDynamicProps[item.IdProperty]).Width(140).Title(item.DisplayName);
同样的错误.
解决方法
直接使用Fluent API没有简单的方法.您需要做的是从另一个方法调用ajax,该方法将返回带有结构化数据的JSON.
或者尝试另一种方式,这与您尝试的几乎相同.也许可以帮到你:
https://mycodepad.wordpress.com/2014/12/01/asp-net-mvc-5-with-razor-kendo-ui-dynamic-grid-creation-columns-ordering-grouping-and-paging/