我正在使用 Kendo UI (2015.3.930) 网格控制,并且网格过滤器行中有一个整数文本框,当我应用过滤器时,该文本框始终为小数。
这是我的代码:
@(Html.Kendo().Grid((IEnumerable<UiController.Lot>)Model.Lots)
.Name("Grid")
.Columns(columns =>
{
columns.Bound(c => c.LotNumber).Title("Lot No")
.Filterable(ftb =>ftb.ItemTemplate("NumericFilter"));
columns.Bound(c => c.BranchName).Title("Branch Name");
})
.HtmlAttributes(new { style = "height: 530px;" })
.Filterable(ftb => ftb.Mode(GridFilterMode.Row))
.DataSource(dataSource => dataSource
.Server()
.Model(model => { model.Id(p => p.Id); })
)
)
我的脚本部分显示:
<script>
function NumericFilter(args) {
args.element.kendoNumericTextBox({
"spinners": false,
"format": "n0",
"decimals": 0,
});
}
</script>
对于整数值 10,应用过滤器后显示“10.00”。有没有办法显示没有小数部分的值。
我准备了Dojo示例只是为了表明这是可能的。
我没有 MVC 包装器,但看起来,如果你对代码做一些小的修改,它就会起作用:
1]将 Filterable 中的 ItemTemplate 更改为 UI
columns.Bound(c => c.LotNumber).Title("Lot No").Filterable(ftb => ftb.UI("NumericFilter"));
2] 那么你应该能够通过你在问题中显示的语法通过小的(选择器)修改来获得想要的行为
<script>
function NumericFilter(args) {
$(args).kendoNumericTextBox({
"spinners" : false,
"format": "n0",
"decimals": 0,
});
}
要自定义此字段,您需要使用cell.template,请按如下方式更新您的代码:
columns.Bound(c => c.LotNumber)
.Title("Lot No")
.Filterable(ftb => ftb.Cell(c => c.Template("NumericFilter")));