kendo 网格中的可空枚举 属性
Nullable Enum property in kendo Grid
我有几个枚举属性,我想将它们绑定到网格。我正在使用以下代码
column.ForeignKey(p => p.<EnumpropertyName>,
Model.<EnumList_As_SelectedItemList>, "Value", "Text");
枚举属性名称可为空枚举。
在另一专栏中,我参考了 child 属性 of 属性
column.ForeignKey(p => p.<Enumproperty2Name>.<childProperyName>,
Model.<AnotherEnumList_As_SelectedItemList>, "Value", "Text");
childProperyName 是可为空的枚举。
因为里面有childobject我有
.Model(model =>
{
model.Id(p => p.InfoTableId);
model.Field(p => p.<Enumproperty2Name>).DefaultValue(new Enumproperty2Name());
})
这不起作用,因为我为这些下拉列表添加了新行和 select 值,在 selection 之后值丢失了。但是,如果我删除 nullable 并让它们成为常规枚举属性,它们就可以工作。
如何使可为空的枚举在 kendo 网格中工作。
谢谢
要在 Kendo 网格中添加下拉菜单,请尝试以下操作。
columns.ForeignKey(p => p.ExamDateStatus, (System.Collections.IEnumerable)ViewData["ExamStatus"], "Value", "Text")
.Title("Status").EditorTemplateName("ComboForeignKey").Width(100);
"ComboForeignKey" 是位于 Views\Shared\EditorTemplates 文件夹中的部分视图。它的内容必须类似于以下内容。
@model object
@(
Html.Kendo().DropDownListFor(m => m).OptionLabel("Select Below...")
.HtmlAttributes(new { data_value_primitive = "true"})
.BindTo((SelectList)ViewData[ViewData.TemplateInfo.GetFullHtmlFieldName("") + "_Data"])
)
我在将值绑定到可为 null 的枚举 属性 时遇到了类似的问题。我设法使用查马拉的回答修复了它。
最重要的一行是:
.HtmlAttributes(new { data_value_primitive = "true"})
它强制 Kendo 编辑器绑定到原始值类型(从而将简单的数字值发送到您的服务器)而不是
System.Nullable<YourEnumType>
该值类型后来被默认的 MVC 模型绑定程序成功反序列化并转换为您的枚举值。与前面的选项(没有 data_value_primitive 属性)不同,在这种情况下,收到的值只是 null。
我有几个枚举属性,我想将它们绑定到网格。我正在使用以下代码
column.ForeignKey(p => p.<EnumpropertyName>,
Model.<EnumList_As_SelectedItemList>, "Value", "Text");
枚举属性名称可为空枚举。
在另一专栏中,我参考了 child 属性 of 属性
column.ForeignKey(p => p.<Enumproperty2Name>.<childProperyName>,
Model.<AnotherEnumList_As_SelectedItemList>, "Value", "Text");
childProperyName 是可为空的枚举。
因为里面有childobject我有
.Model(model =>
{
model.Id(p => p.InfoTableId);
model.Field(p => p.<Enumproperty2Name>).DefaultValue(new Enumproperty2Name());
})
这不起作用,因为我为这些下拉列表添加了新行和 select 值,在 selection 之后值丢失了。但是,如果我删除 nullable 并让它们成为常规枚举属性,它们就可以工作。
如何使可为空的枚举在 kendo 网格中工作。
谢谢
要在 Kendo 网格中添加下拉菜单,请尝试以下操作。
columns.ForeignKey(p => p.ExamDateStatus, (System.Collections.IEnumerable)ViewData["ExamStatus"], "Value", "Text")
.Title("Status").EditorTemplateName("ComboForeignKey").Width(100);
"ComboForeignKey" 是位于 Views\Shared\EditorTemplates 文件夹中的部分视图。它的内容必须类似于以下内容。
@model object
@(
Html.Kendo().DropDownListFor(m => m).OptionLabel("Select Below...")
.HtmlAttributes(new { data_value_primitive = "true"})
.BindTo((SelectList)ViewData[ViewData.TemplateInfo.GetFullHtmlFieldName("") + "_Data"])
)
我在将值绑定到可为 null 的枚举 属性 时遇到了类似的问题。我设法使用查马拉的回答修复了它。
最重要的一行是:
.HtmlAttributes(new { data_value_primitive = "true"})
它强制 Kendo 编辑器绑定到原始值类型(从而将简单的数字值发送到您的服务器)而不是
System.Nullable<YourEnumType>
该值类型后来被默认的 MVC 模型绑定程序成功反序列化并转换为您的枚举值。与前面的选项(没有 data_value_primitive 属性)不同,在这种情况下,收到的值只是 null。