Not sure if this is already in the works but when building mvc grids it would be helpful to have the ability to prevent a column from getting too big when the screen size is larger than the grid needs. Right now if columns are turned off and there is more space for the unlocked columns, they expand to fill the page which is normally fine but in some instances it looks silly to have a column for example that you would enter a 2 digit number in to be 300 plus px wide.
Add the ability to display aggregates of non grouped columns in the group header.
Today, when we use IEnumerable<dynamic> type as the model for the kendo grid, the grid is generated fine, but the javascript serialization fails when we pass the datasource to the GridBuilder constructor. This results in empty grid client side, because the datasource is empty, even if the html initially generated contains the values. This behavior comes from a problem with the JavaScriptSerializer (also present in the JSon() function of MVC)
If you change the dataSource to a grid (for example by changing the filter conditions) so that less data is returned, you will not be warned if the current page is no longer valid. No error is reported and no data is returned and you won't have a clue why. Try this to replicate: Make a paged grid plus a couple of datepickers to filter the grid data by date range. Add a button to make the new filter dates effective. Write a new MVC controller method to populate the data, using the ToDataSourceResult extension method e.g. "return Json(obj.ToDataSourceResult(request));" to return data. Open a sizeable dataset in the grid (many pages) and go to the last page. Change the filter conditions to be much more restrictive. Click the button to make them effective. Watch as the grid displays no data, the code reports no error and stepping into your controller confirms that the method is returning data. Confusing huh? An error or warning would make this much clearer.
The existing solution was built in 2009 using .Net 3.5 web forms framework (List View), ASP.Net Ajax (Accordion) and JQuery (validation). The web page accomplishes the following key functional requirements – a. Ability to group products – The groups are dynamically extracted from the same datasource that is providing the product list. Using ASP.Net Ajax we were able to provide the expand / collapse visual effect. b. Ability to enter order quantities very quickly - a lot of stores place orders at the last minute (5-10 minutes before order deadline) for valid reasons. The web page readily provides a text box for quick entry. On a desktop, the user can traverse the rows within the group using the tab key. The web page typically contains 150 – 200 products for entry. Having to click on Edit/Update/Cancel dramatically increases the number of clicks / touch / swipe. Besides, it creates a real estate issue on smaller form factors. c. Real time validation – using JQuery we were able to validate the row as and when the quantity was entered. Any error would show below the row in question. The error would continue to show until the quantity was revised. The error however, will not stop the user from entering quantities on other rows. This approach lets the user review any errors in the end.
Possibility to iterate over all manually defined columns and f.i. set width or any other property.
Static property requires null instance, non-static property requires non-null instance. Parameter name: expression Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.ArgumentException: Static property requires null instance, non-static property requires non-null instance. Parameter name: expression [ArgumentException: Static property requires null instance, non-static property requires non-null instance. Parameter name: expression] System.Linq.Expressions.Expression.Property(Expression expression, PropertyInfo property) +4376691 System.Linq.Expressions.Expression.MakeMemberAccess(Expression expression, MemberInfo member) +90 Kendo.Mvc.Infrastructure.Implementation.Expressions.MemberAccessTokenExtensions.CreateMemberAccessExpression(IMemberAccessToken token, Expression instance) +122 Kendo.Mvc.Infrastructure.Implementation.Expressions.ExpressionFactory.MakeMemberAccess(Expression instance, String memberName) +107 Kendo.Mvc.Infrastructure.Implementation.Expressions.PropertyAccessExpressionBuilder.CreateMemberAccessExpression() +70 Kendo.Mvc.Infrastructure.Implementation.Expressions.MemberAccessExpressionBuilderBase.CreateLambdaExpression() +17 Kendo.Mvc.Infrastructure.Implementation.SortDescriptorCollectionExpressionBuilder.Sort() +120 Kendo.Mvc.Extensions.QueryableExtensions.CreateDataSourceResult(IQueryable queryable, DataSourceRequest request, ModelStateDictionary modelState, Func`2 selector) +888 Kendo.Mvc.Extensions.QueryableExtensions.ToDataSourceResult(IQueryable`1 enumerable, DataSourceRequest request, Func`2 selector) +58
ToDataSourceResult is very very slow on Large datasets - getting the Total Count is the issue, have an option to omit the total count or provide a way to inject the total count with some more efficient code.
We can add option for No filter in filter selection , Is consumes less space then other
today we need to loop through all rows in the Grid to do something in a row. On Telerik Extensions we had the OnRowDataBound event which we had the current row to do something.
Just getting started with Kendo Grid - below is my VB.NET razor code (I know, I know) working against a System.Data.DataTable for a model. The DataTable contains columns in it where some of the ColumnNames have spaces. The web page successfully renders my table, but, it errors due to the Kendo's row template, it seems. Dim mainGrid = Html.Kendo().Grid(Model.MainTable) _ .Name("Grid") _ .Columns(Sub(cols) cols.AutoGenerate(True) End Sub) _ .DataSource(Sub(dSource) dSource.Ajax() End Sub) _ .Pageable() _ .Sortable() _ .Filterable()
Your HTML Helpers generate fairly simple HTML and javascript ... but its not easy to read because it is somewhat minified (at least it has no indentation). It would be nice to set a flag somewhere to enable a pretty print option. I assume you have something like that internally anyway?
Buttons can be added to the toolbar as Enabled(true/false), it would be consistent to have the same option for Visible(true/false) Currently the visibility can be changed via the API button.hide() or button.show(), however, not when initializing the toolbar using the MVC wrapper
Imagine situation that you have 10 separate solutions - different software. In each you use Kendo library. If you want to update to the latest version you need to update in each project separately. How would you resolve such a issue instead of updating only one common project? Please add such a functionality.
@(Html.Kendo().TabStrip().Name("dashboardTab") .HtmlAttributes(new {@class = "fullHeight"}) I need that css class applied at the outermost element rendered through the TabStrip. Otherwise there is no way to modify a controls appearance using css only without wrapping every single tabstrip in a container for the sole purpose of accessing it with css.
When user click on Edit/Add call custom url. To this url automate pass the ID(or viewModel for ASP.NET MVC) of current record (null if it's new record). This url have to return partial view for edit(or add) form (like template).
When having a filter on a number, the only option to chose, is a NumericTextBox, which adds decimals to the number (very annoying). public enum GridFilterUIRole { Default = 0, NumericTextBox = 1, DatePicker = 2, DateTimePicker = 3, TimePicker = 4, } The only way to get rid of the decimals, is to ad some scripts that does this: function NumericFilter(e) { $(e.element).kendoNumericTextBox({ "format": "n0", "decimals": 0 }); } We need a IntTextBox option. Thank you.
The serialization of a grid should be more lightweight. Texts are serialized multiple times - for each column and in case of several grids on a single view all texts are serialized many times. The serialization of "standard-texts" can be optimized: "filterable": { "messages": { "info": "Zeigt Zeilen mit Werten, die", "isTrue": "ist richtig", "isFalse": "ist falsch", "clear": "Löschen", "and": "Und", "or": "Oder", "selectValue": "-Wählen Sie-", "value": "Wert", "cancel": "Abbrechen" }, "operators": { "string": { "eq": "Ist gleich", "neq": "Ist nicht gleich", "startswith": "Beginnt mit", "endswith": "Endet mit", "contains": "Beinhaltet", "doesnotcontain": "Beinhaltet nicht" }, "number": { "eq": "Ist gleich", "neq": "Ist nicht gleich", "gte": "Ist größer als oder gleich", "gt": "Ist größer als", "lte": "Ist kleiner als oder gleich", "lt": "Ist kleiner" }, "date": { "eq": "Ist gleich", "neq": "Ist nicht gleich", "gte": "Ist nach oder gleich", "gt": "Ist nach", "lte": "Ist vor oder gleich", "lt": "Ist vor" }, "enums": { "eq": "Ist gleich", "neq": "Ist nicht gleich" } } },
When deleting or editing a series on the Scheduler, there is no option to edit/delete "all subsequent events". Quite often, when editing a series, users will want to adjust the selected event and all subsequent events when editing a series. iCal, Google Calendar, Outlook all support the option of editing a series in that manner. I would like the Kendo Scheduler Occurrence popup that contains the "this event only" and "entire series" options to also have options that include "all events in the series before the selected one" "all events in the series after the selected one" like other calendar implementations. Thanks