asp.net-mvc – Telerik mvc grid,columns.bound to dictionary value.或“模型中的动态属性”

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – Telerik mvc grid,columns.bound to dictionary value.或“模型中的动态属性”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个动态“属性”的模型(在DB级别,类似于 Entity-Attribute-Value系统).
这些属性位于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/

猜你在找的asp.Net相关文章