Использую библиотеку KendoUI Jquery. Создал класс JS:
class kendoUI{
loadKendoUI(url, itemPerPage,columnsCount, gridName, actButtons, editType, columnNames, filtersCustomOperators, showOperatorsByColumns, selectorsForFilters){
this.ajaxURL = url;
this.itemPerPage = itemPerPage;
this.columnsCount = columnsCount;
this.gridName = gridName;
this.actButtons = actButtons;
this.editType = editType;
if(filtersCustomOperators != ''){
this.customOperators = JSON.parse(filtersCustomOperators);
}
// LOADING COLUMNS AND MODELS BEGIN
this.getColumnsURL = "server-side/view/person_kendo.action2.php?act=get_columns&count="+this.columnsCount;
var self = this;
$.ajax({
url: this.getColumnsURL,
data: {names: columnNames, operators: showOperatorsByColumns, selectors: selectorsForFilters},
dataType: "json",
success: function(kendoData) {
self.generateGrid(kendoData);
}
});
// LOADING COLUMNS AND MODELS END
}
generateGrid(kendoData){
this.dataSource = new kendo.data.DataSource({
//TODO CUSTOM TRANSPORT GET DATA
transport: {
read: {
url: this.ajaxURL + "?act=get_list&count="+this.columnsCount,
dataType: "json"
},
update: {
url: this.ajaxURL + "?act=save_priority",
dataType: "json"
},
destroy: {
url: this.ajaxURL + "?act=disable",
dataType: "json"
},
create: {
url: this.ajaxURL + "/Products/Create",
dataType: "json"
},
parameterMap: function(data, options, operation) {
if (operation !== "read" && options.models) {
return {models: kendo.stringify(options.models)};
}
else {
return {add: kendo.stringify(data)};
}
}
},
batch: true,
pageSize: this.itemPerPage,
schema: {
model: kendoData.modelss,
total: 'total',
data: function (data) {
return data.data;
}
},
serverFiltering: true,
serverPaging: true
});
$("#"+this.gridName).kendoGrid({
dataSource: this.dataSource,
pdf: {
allPages: true,
avoidLinks: true,
paperSize: "A4",
margin: { top: "2cm", left: "1cm", right: "1cm", bottom: "1cm" },
landscape: true,
repeatHeaders: true,
template: $("#page-template").html(),
scale: 0.8
},
selectable: "multiple",
allowCopy: true,
persistSelection: true,
height: 500,
sortable: true,
filterable: {
operators: this.customOperators,
mode: "row"
},
pageable: true,
toolbar: this.actButtons,
columns: kendoData.columnss,
editable: this.editType
});
}
}
столбцы и модели возвращает PHP через AJAX и JSON в методе loadKendoUI
JSON такого вида:
{"columnss":[{"field":"reg_date","title":"თარიღი","format":"{0:yyyy-MM-dd}","filterable":{"cell":{"showOperators":false,"template":"betweenFilter"}}},{"field":"name","title":"სახელი","filterable":{"cell":{"showOperators":false}}},{"field":"surname","title":"გვარი","filterable":{"cell":{"showOperators":false}}},{"field":"age","title":"ასაკი","filterable":{"cell":{"showOperators":true}}},{"field":"sex_id","title":"სქესი","filterable":{"cell":{"showOperators":false}},"values":[{"text":"მამრობითი","value":"1"},{"text":"მდედრობითი","value":"2"},{"text":"საშუალო","value":"3"}]},{"command":["edit","destroy"],"title":" ","width":"250px"}],"modelss":{"id":"id","fields":{"id":{"editable":true,"type":"number"},"reg_date":{"editable":false,"type":"date"},"name":{"editable":true,"type":"string"},"surname":{"editable":true,"type":"string"},"age":{"editable":true,"type":"number"},"sex_id":{"editable":true,"type":"number"}}}}
Как вы можете видеть по JSON в первомже COLUMN-е есть обЪект "template":"betweenFilter"
но функция betweenFilter не запускаеться
function betweenFilter(args) {
alert('hello');
}
Кто знаком с KendoUI подскажите что делать?!
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Неделю назад начал изучать движок Unity, сейчас не могу разобраться с вращениемДопустим есть стрелка (представьте, например, стрелку спидометра),...
Если пригласить в проект Visual Studio (WPF,NET) через Live Share, конструктор макета отображается только у меня, запускать отладку тоже можно только на моем...
Хотелось бы подключиться к серверу (phpMyAdmin) и сделать выборку необходимых таблиц