如何在kendo ui网格中添加行号?

Tav*_*usi 12 c# asp.net-mvc kendo-ui kendo-grid kendo-asp.net-mvc

我的页面中有一个kendo ui网格,有一些列.现在我想添加一个列,显示行号.我该怎么做?谢谢.

Zah*_*med 24

初始化变量并将其显示在列中 template: "#= ++record #"

工作演示

这是代码:

var record = 0;

$("#grid").kendoGrid({
  dataSource: {
    data: [{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" }, { foo: "foo" }, { foo : "foo1" }],
    pageSize: 10
  },
  sortable: true,
  columns: [ {
    title: " ",
    template: "#= ++record #",
    width: 30
  }, { field: "foo" }],
  pageable: true,
  dataBinding: function() {
    record = (this.dataSource.page() -1) * this.dataSource.pageSize();
  }
});
Run Code Online (Sandbox Code Playgroud)

  • 注意:`record`变量应定义为全局(窗口)变量.如果这个js代码是在全局范围内编写的,没问题.但是,如果您在函数中编写此代码,则应将`var record = 0`更改为`window.record = 0`,否则您将获得异常. (5认同)

小智 7

对于Razor你还需要实际显示数字:(没有足够的点评论)

网格上方:

@{int counter = 1;}
Run Code Online (Sandbox Code Playgroud)

内部列定义:

columns.Template(@<text> 
        <span>@counter @{ counter++; }</span>
        </text>).Title("#");
Run Code Online (Sandbox Code Playgroud)


Ehs*_*edi 6

没有必要定义任何变量,您可以从数据绑定事件中获得帮助:

$("#grid").kendoGrid({
    sortable: true,
    dataSource: [{
        name: "Jane Doe",
        age: 30
    }, {
        name: "John Doe",
        age: 33
    }],
    columns: [{
        field: "name"
    }, {
        field: "age"
    }, {
        field: "rowNumber",
        title: "Row number",
        template: "<span class='row-number'></span>"
    }],
    dataBound: function () {
        var rows = this.items();
        $(rows).each(function () {
            var index = $(this).index() + 1 
            + ($("#grid").data("kendoGrid").dataSource.pageSize() * ($("#grid").data("kendoGrid").dataSource.page() - 1));;
            var rowLabel = $(this).find(".row-number");
            $(rowLabel).html(index);
        });
    }
});
Run Code Online (Sandbox Code Playgroud)