2015-08-26 58 views
1

我有几个属性是枚举,我想将它们绑定到网格。我正在使用以下代码kendo的Nullable Enum属性Grid

column.ForeignKey(p => p.<EnumpropertyName>, 
Model.<EnumList_As_SelectedItemList>, "Value", "Text"); 

EnumpropertyName是可为空的枚举。

在另一列,我指的是物业的孩子财产

column.ForeignKey(p => p.<Enumproperty2Name>.<childProperyName>, 
Model.<AnotherEnumList_As_SelectedItemList>, "Value", "Text"); 

childProperyName为空枚举。

由于这是内部的子对象我有

.Model(model => 
{ 
    model.Id(p => p.InfoTableId); 
    model.Field(p => p.<Enumproperty2Name>).DefaultValue(new  Enumproperty2Name()); 
    }) 

这不是工作,因为我添加新行,并选择价值为这些下拉列表中,值选择后丢失。但是,如果我删除可空,并让他们成为普通枚举属性,他们工作。

如何使可空的枚举在剑道网格中工作。

谢谢

回答

2

要在Kendo Grid中添加下拉菜单,请尝试以下操作。

columns.ForeignKey(p => p.ExamDateStatus, (System.Collections.IEnumerable)ViewData["ExamStatus"], "Value", "Text") 
.Title("Status").EditorTemplateName("ComboForeignKey").Width(100); 

“ComboForeignKey” 是驻留视图\共享\ EditorTemplates文件夹的局部视图。它的内容必须与以下内容类似。

@model object 

@(
Html.Kendo().DropDownListFor(m => m).OptionLabel("Select Below...") 
.HtmlAttributes(new { data_value_primitive = "true"}) 
.BindTo((SelectList)ViewData[ViewData.TemplateInfo.GetFullHtmlFieldName("") + "_Data"]) 
) 
2

我有与价值绑定到可空的枚举属性相似的问题。我设法使用查马拉的答案来修复它。

最重要的线路有这样一句:

.HtmlAttributes(new { data_value_primitive = "true"}) 

它迫使剑道编辑器绑定到原始值类型(从而发送简单的数值到您的服务器),而不是

System.Nullable<YourEnumType> 

那值类型后来被默认的MVC模型绑定器成功反序列化,并转换为您的枚举值。与之前的选项(没有data_value_primitive属性)不同,在这种情况下,收到的值只是空值。

+1

设置data_value_primitive解决了我的问题,但我没有使用Enum。看起来像剑道或粘结剂可以很多可空类型的麻烦。我是一个整数?属性。 –