我正在使用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,
});
}
对于Integer值10,在应用过滤器后显示“10.00”。有没有办法显示没有小数部分的值。
谢谢,
答案 0 :(得分:0)
我准备Dojo example只是为了表明它是可能的。
我没有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,
});
}
答案 1 :(得分:0)
要自定义此字段,您需要使用cell.template,请按以下步骤更新您的代码:
columns.Bound(c => c.LotNumber)
.Title("Lot No")
.Filterable(ftb => ftb.Cell(c => c.Template("NumericFilter")));