2012-08-04 90 views
0

我正在将Telerik ASP.net MVC迁移到Kendo ASP.net MVC。在Telerik MVC中,我使用数组中的对象和Bound调用中指定的对象类型来界定列,并且所有工作都完美无缺。未设置Kendo MVC Grid列类型

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

但是使用Kendo MemberType将被忽略并保持为空。有什么不同的方式可以在Kendo中设置MemberType?或者,如果Kendo只使用数据模式作为列数据类型,那么我如何在运行时更新模式?

回答

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); 
+0

谢谢我也在我的项目中使用它 – 2014-04-05 11:02:09