如何在Kendo UI网格中显示空行?

时间:2014-12-24 10:36:10

标签: angularjs kendo-ui kendo-grid

我通过AngularJS获得了一个Kendo UI网格。说我想连续显示10个项目。现在当数据少于10或根本没有数据时,我想显示空行,即数据是否存在,网格应该是相同的高度,显示空行。

如果数据不存在,KendoUI会做什么,它会降低网格高度。因此,如果数据为零,那么我目前只获得标题,然后是分页。

$scope.testGridOptions = {
              sortable: true,
              pageable: {
                  refresh: true,
                  pageSizes: true
              },
              columns: [ ...

Kendo网格中的数据和选项

 $scope.testGridData = new kendo.data.DataSource({ 
              data:[
                      { .. }, {.. } .. ], 
              pageSize : 10 
           })

如何使用KendoUI网格实现这一目标?

1 个答案:

答案 0 :(得分:0)

正如评论中提到的那样(正如我自己亲自发现的那样),当尝试在Kendo网格中插入空白行时,它会变得混乱。在我的例子中,我尝试在我的服务器端代码中将空/空行插入我的数据中。这使得客户端更容易,但是Kendo剥离了没有数据的行。作为一个黑客,我发现自己在服务器端添加虚拟数据值,只是在客户端上删除它们。

另一种选择是在客户端上的JavaScript中添加空网格行。在网格的dataBound事件中,您可以检查项目数并适当地添加行。注意:根据Kendo文档,网格的addRow方法会触发编辑事件,因此您可能必须在特定情况下处理此事件。我在下面的网格选项中添加了一个dataBound事件处理程序。祝你好运!

https://docs.telerik.com/kendo-ui/api/javascript/ui/grid#methods-addRow

$scope.testGridOptions = {
sortable: true,
pageable: {
    refresh: true,
    pageSizes: true
},
dataBound: function (e) {
    var rowCount = this.dataSource.view().length;  // only get count for current page
    if (rowCount < 10) {
        for (var i = 1; i < 10 - rowCount; i++) {
            this.addRow();
        }
    }
},
columns: [ ...