我正在将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仅使用数据模式用于列数据类型,那么我如何在运行时更新模式?
答案 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);