Kendo UI Grid - 过滤整数列显示为十进制

时间:2015-12-28 18:45:20

标签: user-interface kendo-ui grid

我正在使用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”。有没有办法显示没有小数部分的值。

谢谢,

2 个答案:

答案 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")));