我在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);
})
答案 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))