My grid receives data in JSON format and all dates are in UTC time and formatted to local time using kendo.toString and it works fine.
The problem begins with filters for date time column:
column.filterable = {
ui: function (element) {
return element.kendoDatePicker({
format: kendoHelpers.dateTimeFormat
});
},
operators: {
date: {
lt: operators.date.lt,
gte: operators.date.gte,
}
}
};
I will try to explain it on a real scenario:
I'm in UTC+01 timezone and when I want to filter all dates before 27-01-2020 16:30 it correctly saves Date object in grid.filter.filters array (with timezone offset)
but when filter request is being sent to the server it ignores timezone and sends filter:InsertDate~lt~datetime'2020-01-27T16-30-00' (should be 15:30 or with timezone)
Is there anyway to modify filter value or change it's format to send also information about timezone?

Hi ,
I am working on a some prototypes for my workplace and I am looking for guidance on the best approach. I am relatively new to Kendo and have recently switched from the mvc helpers to Jquery + javascript. I am trying to do the following. My sample code is below.
1. I would like to dynamically generate the cols on the UI using the remote result set. So the result set may contain 25 cols but I only want to paint 5 of them
2. I would like to implement this in reasonably straight forward manner. I was hoping that I could use the datasource fetch but now am no so sure.
3. I would remove the columnheader menu and install my own drop down in the grid toolbar which I would then use to toggle the grid columns on and off. I could then control what columns this would be performed for. I have to do this as there is a restriction on using child grids and frozen cols
The issue that I am encountering is the grid is rendered before I have chance to modify what gets renedered and how. I have seen suggestions that one should destroy the grid prior to rebuilding it. So can you
A.) Indicate if I should create fetch request outside a datasource and use my custom ajax call or should I rebuild the datasource each request
B.) Destroy the grid at each request
B.) Do you have any examples in js where this is done. I have search the web and founds bits and pieces.
Thanks
Ciaran
<div id="container">
<div id="grid"></div>
</div>
<script type="text/javascript">
var baseurl ="http://localhost:5000/api/"
var currentModel;
var requiredColumns=["Id", "CoreId"]
var showOnlyTheseColumns =["Id", "CoreId", "projectName" ]
var DEFAULT_PAGE_SIZE = 15;
var isDateField =[];
var currentColumns =[];
var currentFilters = [];
currentFilters.push({field: 'Id',operator: 'contains',value: '22' });
$(function(){
var grid = $("#grid").kendoGrid({
dataBound: function(e) {
var grid = this;
console.debug('Its too late here its already bound..');
},
dataBinding: function(e){
let grid = this;
grid.columns() =[];
console.debug('databinding called');
},
autoBind: true, //!!! PRETTY SURE THIS SHOULD BE SET TO FALSE. Is this correct? !!!
height: 400,
toolbar: kendo.template($("#toolbarTemplate").html()),
columns:currentColumns,
pageable: {
buttonCount: 6,
refresh: true,
pageSizes: [20, 50, 100, 200],
messages: {
display: "Showing {0}-{1} from {2} " ,
empty: "No records to display",
itemsPerPage: " per page",
}
},
sortable: true,
filterable: true,
scrollable: true,
reorderable: true,
resizable: true,
editable: true,
dataSource: {
serverPaging: true,
serverFiltering: true,
serverSorting: true,
pageSize: DEFAULT_PAGE_SIZE,
sort: {
field: "J.CoreId",
dir: "desc"
},
schema: {
data: "data",
total: "total",
model: currentModel
},
batch: false,
transport: {
create: {
url: baseurl +"Job",
contentType: "application/json",
type: "POST"
},
read: {
url: baseurl +"Job",
contentType: "jsonp",
complete: function (qXHR, textStatus) {
console.log(textStatus, "update");
//Build the model from the source data
currentModel = generateModel(qXHR.responseJSON.data);
//create the columns from the source data
currentColumns =generateColumns(qXHR.responseJSON.data);
console.log('ITS TOO LATE THE GRID IS ALREAYD BOUND ')
$('#grid').data('kendoGrid').refresh();
}
},
update: {
url: baseurl +"Job",
contentType: "application/json",
type: "PUT"
},
destroy: {
url: baseurl +"Job",
contentType: "application/json",
type: "DELETE"
},
parameterMap: function (data, operation) {
currentColumns =[];
return JSON.stringify(data);
}
}
}
});
});
</script>
<script type="text/javascript">
// https://docs.telerik.com/kendo-ui/knowledge-base/create-with-dynamic-columns-and-data-types
function generateColumns(gridData){
for (var property in gridData[0]) {
if (showOnlyTheseColumns.indexOf(property) > -1){
currentColumns.push({field: property,width: "100px", format: (isDateField[name] ? "{0:D}" : "")});
}
}
return currentColumns;
}
Is it possible to just include the kendo.maskedtextbox.min.js in my page? instead of the 3MB kendo.all.min.js file?
What are all the includes needed for maskedtextbox and validation?
Thanks!

Hi, dev teams!
I have two odata source with data like:
ds1 = [id, title] - unique entities here
ds2 = [id,year,value] - multiples entities
I need *title*(ds1) for axeY and *year*(ds2),*value*(ds2) for axeX
So, how i can match this data to one chart by *id*?

Hi,
We are trying to implement Bar/Line charts for our project. We have a specification to remove all extra margins/paddings between titles, labels and plotArea. So far, we could manage to remove for labels and titles but the plotArea still has margins/paddings.
var options = { valueAxis: { background: "red", title: { text: _getSeriesName(), font: chartFont, margin: 0, padding: 0, visible: IsTitlesVisible, background: "blue" }, labels: { font: chartFont, margin: 0, padding: 0, background: "green" }, line: { visible: false } }, series: _getSeries(), categoryAxis: { background: "red", title: { text: _getCategoriesName(), font: chartFont, margin: 0, padding: 0, visible: IsTitlesVisible, background: "blue }, labels: { font: chartFont, margin: 0, padding: 0, background: "green" }, categories: _getCategories(), line: { visible: false } }, plotArea: { margin: 0, padding: 0, background: "orange" }};Please also see the attached file to visualization.
Thanks

Hi team,
About the editor's image browser upload service with imageBrowser.transport.uploadUrl : is there a possibility to set the saveField like it's possible with the upload widget ? Seems the default name is "file" !
Content-Disposition: form-data; name="file"; filename="xxx.jpg"
Content-Type: image/jpeg
Best regards,
Laurent.

I have a grid with a Popup upon edit, but I only want to show 1 or 2 fields in the popup not all of the fields from the selected row, is that possible?
Thanks!
I have a kendoListBox with 12,000 items. This is connected with another kendoListBox and has draggable enabled. Each listbox item has a template applied. The listbox is inside of a modal. When I click a button to open the modal there is a 3 second delay for the modal to open. Then when I try to drag an item or click the arrow buttons to move the item to the opposite list there is another 3 second delay before anything happens. The issue occurred when I changed from a list with only a couple hundred items to this large list. I had this problem with some dropdown boxes and fixed those with virtualization but virtualization does not appear to be available or work here. How do I increase performance so that these components are usable?
<div id="baseModal"> <div class="modal-content"> <div class="modal-header"> <div id="baseModalTitle" class="modal-title">My Modal</div> </div> <div class="modal-body"> <div id="exceptions" class="kendo-dnd-component"> <div class="dnd-list-boxes"> <div class="available-options-container"> <label for="availableItems">Applies To</label> <span class="k-list-filter"> <input id="availableItemsSearchBox" class="k-textbox"><span class="k-icon k-i-zoom"></span> </span> <select id="availableItems" class="browser-default"></select> </div> <div class="selected-options-container"> <label for="selectedItems">Excludes</label> <span class="k-list-filter"> <input id="selectedItemsSearchBox" class="k-textbox"><span class="k-icon k-i-zoom"></span> </span> <select id="selectedItems" class="browser-default"></select> </div> </div> </div> </div> </div> <div class="modal-footer"> <div class="right-align"> <button type="button" class="modal-close waves-effect btn-flat">Cancel</button> <button type="button" class="btn waves-effect ">Accept</button> </div> </div></div><script>function createItemsDragLists() { // List Boxes $("#availableItemsSearchBox").on("input", function (e) { var listBox = $("#availableItems").getKendoListBox(); var sarchString = $(this).val(); listBox.dataSource.filter({ logic: "or", filters: [ { field: "itemID", operator: "contains", value: sarchString }, { field: "itemName", operator: "contains", value: sarchString } ] }); }); $("#selectedItemsSearchBox").on("input", function (e) { var listBox = $("#selectedItems").getKendoListBox(); var sarchString = $(this).val(); listBox.dataSource.filter({ logic: "or", filters: [ { field: "itemID", operator: "contains", value: sarchString }, { field: "itemName", operator: "contains", value: sarchString } ] }); }); $("#availableItems").kendoListBox({ connectWith: "selectedItems", draggable: true, autoScroll: true, dropSources: ["selectedItems"], toolbar: { position: "right", tools: ["transferTo", "transferFrom", "transferAllTo", "transferAllFrom"] }, selectable: "multiple", dataSource: items, template: "<span class='listItemID'>#: data.itemID #</span><span class='listItemName'>#: data.itemName#</span>", valueTemplate: "#: itemName #", dataTextField: "itemName", dataValueField: "itemID" }); $("#selectedItems").kendoListBox({ connectWith: "availableItems", draggable: { placeholder: function (element) { return element.clone().css({ "opacity": 0.3, "border": "1px dashed #000000" }); } }, dropSources: ["availableItems"], selectable: "multiple", template: "<span class='listItemID'>#: data.itemID #</span><span class='listItemName'>#: data.itemName#</span>", valueTemplate: "#: itemName #", dataTextField: "itemName", dataValueField: "itemID" });}</script>
I have a grid that shows data from an uploaded file, the user can delete rows that do now want to upload to the database. If I allow this, then the save/create pass an empty datasource object to my create method in the controller. Is it possible to allow for row deletion and pass the remaining data to my controller so they can all be inserted into the table?
