У меня есть простая сетка пользовательского интерфейса кендо, которая должна иметь максимум 5 строк. Есть ли какое-либо свойство конфигурации, которое я могу использовать для ограничения строк, или мне следует написать простую пользовательскую логику для проверки моего источника данных и предотвратить добавление более 5 строк?
Как я могу ограничить количество строк, которые может иметь KendoUI Grid?
Ответы (2)
Учитывая следующее определение kendoGrid
:
var grid = $("#grid").kendoGrid({
dataSource:stocksDataSource,
columns :[
{ field:"col1", title:"Column 1" },
{ field:"col2", title:"Column 2" },
{ field:"col3", title:"Column 3" }
],
toolbar :[
{ name :"create", className :"k-grid-add2" }
],
editable :true
}).data("kendoGrid");
Где я добавил кнопку create
на панель инструментов, но переопределил ее className
на k-grid-add2
. Затем я добавляю ловушку для события click
на этой кнопке следующим образом:
$(".k-grid-add2", grid.element).bind("click", function (ev) {
console.log("adding!");
if (grid.dataSource.data().length < 5) {
grid.addRow();
} else {
alert("Too many, sorry!")
}
});
Где я проверяю количество строк, и если их меньше 5, я вызываю grid.addRow()
, в противном случае я предупреждаю пользователя о том, что строк слишком много.
person
OnaBai
schedule
26.11.2012
вернуть ложь; //после if else в случае пакетного режима
- person Shaz; 15.07.2014
Если вы имеете в виду, что размер страницы должен быть ограничен 5 строками, вы можете установить параметр pageSize
в источнике данных:
$("#grid").kendoGrid({
dataSource: {
pageSize: 5
}
});
http://docs.kendoui.com/api/web/grid#pageablepagesize-number
person
Mario S
schedule
26.11.2012
Нет, я на самом деле хочу, чтобы в сетке всегда было только 5 строк, и, если подумать, я думаю, что это нужно делать с моей собственной логикой в источнике данных :) Но спасибо ...!
- person Sandeep; 26.11.2012
Мне просто интересно, действительно ли мне следует использовать эту строку: if($(#divProductsGrid).data(kendoGrid).dataSource.data().length ‹ 5) {// do something }
- person Sandeep; 26.11.2012
Нет, такого варианта нет (афаик).
- person OnaBai; 26.11.2012
Это сетка, куда вы можете добавлять строки? Если это так, ваше решение не препятствует добавлению строк, а скорее проверяет, меньше ли количество строк, чем 5. Решение похоже, но вам нужно перехватить событие
add
и grid.addRow
, если строк меньше 5.
- person OnaBai; 26.11.2012
@Sandeep Вы правы, тогда это нужно сделать до добавления источника данных. Как выглядит ваш источник данных? Это массив, список, что-то еще?
- person Mario S; 26.11.2012
Марио и Эмилиано — да, вы оба правы, именно так я и делаю сейчас. Моим источником данных будет массив json. Спасибо за помощь !
- person Sandeep; 28.11.2012