什么决定了 Telerik MVC 网格中网格列的类型?

What determines the type of a grid column in a Telerik MVC grid?

我的专栏定义如下:

columns.Bound(o => o.SequenceNumber).Title("Seq #").Width(50).ClientTemplate("' value='<#=SequenceNumber#>' />");

我正在拉入的模型将 SequenceNumber 定义为 Nullable<decimal>。当我拉入网格的属性时,Type 是 "Number"。通常,这是指我们程序中的整数。我知道 "Decimal" 是 Type 的有效值。如何让我的数据列显示为 Type?

Telerik 控件会进行一些基本的反射以匹配合适的编辑器。 Nullable<decimal> 似乎与数字编辑器不匹配(已测试 v2015.1.318)。

相反,您需要提供它知道要检查的更通用的属性:

// This assumes you have the editor templates added
// to your  ~/Views/Shared/EditorTemplates folder.
[UIHint("Number")]
[DisplayFormat(DataFormatString = "0.00")]
public Nullable<decimal> SequenceNumber { get; set; }

您也可以使用 [DataType] 作为货币类型。

[DataType(DataType.Currency)]
public Nullable<decimal> Amount{ get; set; }

编辑 -

通过将名为 Decimal.cshtml 的新 EditorTemplate 添加到 ~/Views/Shared/EditorTemplates:

来测试另一种方法
@model decimal?
@(Html.Kendo().NumericTextBoxFor(m => m)) 

网格按预期找到了它,SequenceNumber 上没有其他属性。

此时,我的解决方案是在检索导出时手动更改此网格列的数据类型,因为我尝试建议数据类型失败。