未设置Kendo MVC Grid列类型

时间:2012-08-04 21:38:50

标签: asp.net-mvc telerik-mvc kendo-ui

我正在将Telerik ASP.net MVC迁移到Kendo ASP.net MVC。在Telerik MVC中,我在一个数组中绑定了一个对象,并在Bound调用中指定了对象类型,所有这些都完美无缺。

columns.Bound(field.EntityFieldType, field.EntityFieldName).Title(field.DisplayName).Template(g =>
{<%= g.GetValue(field.EntityFieldId)%>}).Width(field.Width);
.......

但是使用Kendo MemberType会被忽略并保持为null。如何在剑道中设置MemberType有不同的方法吗?或者,如果Kendo仅使用数据模式用于列数据类型,那么我如何在运行时更新模式?

1 个答案:

答案 0 :(得分:3)

Telerik似乎不赞成使用Type in Bound调用,而是使用DataSource Schema Model。我在绑定任何列之前通过清除模型架构解决了我的问题。

columns.Container.DataSource.Schema.Model.Fields.Clear();

然后在每个绑定列之后,我在模型字段列表中添加了一个新条目。由于我的字段名称包含点(。),我需要将字段名称放在引号中,以便生成JSon是正确的。

ModelFieldDescriptor modelField = new ModelFieldDescriptor();
modelField.Member = "\"" + field.EntityFieldName + "\"";
modelField.MemberType = field.EntityFieldType;
modelField.DefaultValue = null;
modelField.IsEditable = false;
columns.Container.DataSource.Schema.Model.Fields.Add(modelField);