如何在Kendo UI Grid上设置固定行

时间:2015-09-12 15:53:53

标签: asp.net-mvc kendo-ui kendo-grid kendo-asp.net-mvc

我在ASP.NET项目上有一个kendo网格,它通过ajax从(MVC)模型获取数据。网格是可分页的,控制器将模型数据作为PagedList发送。

现在我希望网格不可分页,因此控制器只发送一个List而不是PagedList。问题是我希望网格总是具有固定的行数(比方说5),这样即使模型中的数据量发生变化,行数也不会改变。将确保如果行数为5,则控制器总共不会发送超过5个对象。

如何将网格更改为具有固定行数?这看起来很微不足道,但我确实找了一段时间的答案,没有发现任何一条线索。

.Columns(columns =>
      {
          columns.Bound(u => u.Index)
              .Filterable(false)
            columns.Bound(u => u.Level)
              .Width(60);
            columns.Bound(u => u.Description)
              .Width(120);
            columns.Bound(u => u.DataId)
              .Width(120);
      })
      .Editable(e => e.Mode(GridEditMode.InLine))
      .DataSource(source =>
      {
          source.Ajax()
               .Read(read => read.Action("GetAllLevels", "Level", ViewBag.RouteObjforUnitId).Data("data"))
                      .Model(model =>
                      {
                          model.Field(o => o.Index).Editable(false);
                      })
                      .Model(model => model.Id(o => o.Index));
      })
      .Events(e =>
      {
          e.DetailInit("hideHeaders");
      })
      .Pageable(pageable =>
      {
          pageable.PageSizes(Helper.PageSetting.ToArray());
          pageable.Enabled(true);
      })

3 个答案:

答案 0 :(得分:0)

找到一个解决方案,只需在控制器端用空对象填充网格即可。

答案 1 :(得分:0)

在数据源上设置网格的页面大小,如下所示:

.DataSource(source => {
    source.Ajax()
        .Read(read => read.Action("GetAllLevels", "Level", ViewBag.RouteObjforUnitId).Data("data"))
        .Model(model =>
        {
            model.Id(o => o.Index))
            model.Field(o => o.Index).Editable(false);
        })
        PageSize(5); 
      })

答案 2 :(得分:0)

试试这个,



.Columns(columns =>
      {
          columns.Bound(u => u.Index)
              .Filterable(false)
            columns.Bound(u => u.Level)
              .Width(60);
            columns.Bound(u => u.Description)
              .Width(120);
            columns.Bound(u => u.DataId)
              .Width(120);
      })
      .Editable(e => e.Mode(GridEditMode.InLine))
      .DataSource(source =>
      {
          source.Ajax()
               .Read(read => read.Action("GetAllLevels", "Level", ViewBag.RouteObjforUnitId).Data("data"))
                      .Model(model =>
                      {
                          model.Field(o => o.Index).Editable(false);
                      })
                      .Model(model => model.Id(o => o.Index));
					   .PageSize(5)
      })
      .Events(e =>
      {
          e.DetailInit("hideHeaders");
      })
     Pageable(pager => pager.PageSizes(new int[] { 25, 50, 100, 200 }))
                .Sortable()
                .Scrollable(scrollable => scrollable.Enabled(false))