This is more of a feature request...
If I want to refresh a datasource every 60 seconds, be it a grid, a dropdown, etc., I have to add a snippet of code something like this:
var interval = 60000;
setInterval(function()
{
$("#my-grid").data("kendoGrid").dataSource.read();
}, interval);
Yes, I realize this is trivial, but it would be nice if you could add an AutoRefresh function directly to the DataSource API that handled all of this under the covers. Example:
.DataSource(dataSource => dataSourcehttp://odata.github.io/WebApi/#04-26-InOperator
OData v4 now supports the IN operator as a short hand for multiple or queries (as of http://docs.oasis-open.org/odata/new-in-odata/v4.01/cn01/new-in-odata-v4.01-cn01.html#_Toc485385090 ). This could help to change code such as:
var selectedStations = $("#cmbStations").data("kendoMultiSelect").dataItems();
var stationIds = [];
for (var i = 0; i < selectedStations.length; i++) {
stationIds.push({
field: "StationId",
operator: "eq",
value: stationId
});
}
dataSource.filter({
logic: "or",
filters: stationIds
});
into a much cleaner:
var selectedStations = $("#cmbStations").data("kendoMultiSelect").dataItems();
var stationIds = [];
for (var i = 0; i < selectedStations.length; i++) {
stationIds.push(selectedStations[i].StationId);
}
dataSource.filter({
field: "StationId",
operator: "in",
value: stationId
});
The DataSource schema must be given a total value in order to page correctly. However, DataSource expects this value to come from a response body field. In some cases, we must work with systems that return the total value as a custom field in the response header. We need a way to read custom response header values. Yes, the DataSource transport uses jQuery.ajax, so we can implement a custom complete function to read the response headers from the jqXHR. However, complete fires AFTER schema.total is set so it does no good.
When you have multiple spreadsheet components on the same HTML page, allow them to cross reference each other, similar to the existing referencing capability across multiple tabs (like worksheets) but across completely separate objects (like workbooks) - of course they would need to be on the same page.
"Currently the custom offline storage does not support asynchronous requests". I received this response from Kendo support is response to an issue we have using SQLite for on offline storage. When we try this with local storage or session storage, dataSource.fetch().then() resolves correctly Please implement with SQLite.
If onerecord is saved in database and that record contains onw value which is saved using multiselect and that record will not removed updating that recordi
JSON data sources should be nested rather than having to define and parse flat data structures.
Send filters even when the server filtering is disabled As its documented on serverFiltering , data parameter contains filter property which follows this schema: filter[logic]: and filter[filters][0][field]: name filter[filters][0][operator]: startswith filter[filters][0][value]: Jane When I set serverFiltering to false, data parameter doesn't contain any information about current filter. (See image attached in my first post) And the only way I have to send the filter option in a different format is querying the DOM input element . Shouldn't it work the same way? no matter whether filtering is set either client-side or server-side?
Currently we can only have the CRUD Operations on the remote data source. Atleast thats what it looks like. Is it possible to have more custom operations on Data source that can make remote calls. Or maybe there are and I am not aware of it.
It would be good user interaction when multiple node selection is implemented.It saves lot of rework
Currently all "data*-template" options are limited to use ad #ID selector to pick the template script from the page. This is problematic in big SPAs that have multiple pages dynamically loaded with possible collisions in IDs. To avoid the hassle of mantaining unique ids across all pages (or having to dynamically generate ids) I therefore propose to allow for any jQuery selector in those options. <script type="text/template" class="myAwesomeTemplate"></script> <div data-bind="source: dataSource" data-template=".myAwesomeTemplate"></div> To maintain retrocompatibility a first search with the "#" can be performed before executing the selector. Since I am not very good with GitHub, here is the code that I did implement: function parseOptions(element, options) { var result = {}, option, value, templateElement; for (option in options) { value = parseOption(element, option); if (value !== undefined) { if (templateRegExp.test(option)) { templateElement = null; if(!value) { throw new Error("Missing template selector in option " + option); } try { templateElement = $("#" + value); if(!templateElement.length) { templateElement = $(value).first(); } } catch (jQueryError) { throw new Error("Invalid template selector " + value + " for option " + option); } if(!templateElement.length) { throw new Error("Can't find a template with the specified " + value + " selector in option " + option); } value = kendo.template(templateElement.html()); } result[option] = value; } } return result; }
XML namespaces have a purpose and are extremely useful in maintaining data. The Kendo framework not supporting these is absolute insanity. I'm not interested in rewriting half of my data feeds to support a framework. If Kendo is intended to be "the world's most complete HTML 5 UI Framework," it should be supporting something as basic as this. If there's a valid reason why not to do so, I'd love to hear it.
see Ticket ID: 981260 var dataSource = new kendo.data.DataSource({ type: "odata-v4", }); works correct, but if you just define parameterMap the payload of parameters is not "odata-v4" it changes to old odata with this: var dataSource = new kendo.data.DataSource({ type: "odata-v4", transport: { parameterMap: function(data) { return data; } } }); This feels like I set dataType JSON for transport, and if I just define beforeSend in Ajax Request, I suddenly becomes XML just by defining a overwrite function.
Currently, an inherited DropDownList widget can only bind to another of the same type or another vanilla DropDownList (via alternativeNames array at kendo.all.js line 32813) A use case is that I originally created ParentCustomDDL and ChildCustomDDL with the intention of cascading from parent -> child. Since alternativeNames is hard-coded, I was forced to merge the code into one clumsy widget so that name matches name.
FYI - There are several related requests that have been voted by 100s of users and marked as completed. However, this support is only at the surface and not complete. We need all kendo components to consistently support binding to more than just primitive properties but at a minimum to models with Id (for reference) and labels (for display). Many kendo components support this simple concept with 'dataTextField' and 'dataValue' field, but as soon as we try to customize something seemingly simple (for example multi-checkbox filters on grid columns) we are left with custom coding because at that point kendo falls back to only supporting simple arrays of strings etc. Thanks.
When retrieving data from a remote datasource with a fetchxml via soap that include link entites you get objects that have property names that contain dots like "account.accountid" for example. That doesn't work with Kendo Grid for example. Kendo always tries to go one level deeper if the property name contains a dot. Hence you always have to parse/refactor the results of a retrieve.
Currently when the add() method is called on a DataSource, if the id, as defined in the Model, is included, then the sync method is called, the data is not persisted to the _pristineData object, and neither the Create nor Update transports are called. This has the effect of not persisting the data and so if the cancel button is pushed on an edit screen, the added object is mysteriously dropped. Please see my post on the kendo forums for a more detailed explanation including demos of the issue. http://www.telerik.com/forums/if-id-is-provided-in-add()-sync-does-not-update-_pristinedata-and-create-update-are-not-invoked I would suggest that anytime the add() method is used, it should be considered a 'new' record, or at least when the id provided does not match with any other id currently in the data array. If it matches a record in the data array, run the Update transport, otherwise, run the Create transport. Simply including a value for the id should not remove the record from ever being persisted.
It is possible to retrieve IEnumerable collection from DataSourceResult, but there is no option to get IQueryable collection that has not been evaluated. I think it might be helpful to use filters from grid that can be used to generate a query.
It would be great to implement the "has" operator for OData V4 enum filter scenarios. See http://www.telerik.com/forums/datasource---odata-v4---enums-not-supported-yet Regards, Kasimier Buchcik