2012-08-04 91 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