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
The Kendo UI Grid currently supports posting the rows in the grid back to the server with the rest of the form, but in order to do this you have to add ClientTemplates for each column, with a hidden input to store the value. If you want to use client-side validation with this setup, you have to add the validation attributes to the hidden inputs as well. In an ASP.Net MVC situation, this adds up to a lot of manual synchronization between the validation attributes that exist on the viewmodel and the corresponding columns in the view. It would be great if the grid could enable this type of behavior in a way that is more automatic and requires less manual synchronization between the viewmodel and view. For example, if there was some kind of MVC helper that would take the display expression and name for the hidden input and would generate it automatically, complete with the validation attributes from the property being bound to, that would be great.
What's way to Apply DisplayTemplate(Annotation) for my Model with Ajax binding (Read)
ASP.NET MVC DisplayTemplates should by evaluated and take effect in Grid columns (see: http://www.telerik.com/forums/using-a-displaytemplate). Thus for custom formatting, defining a ClientTemplate() should not be required.
In a treeview we have different model classes merged into a single model for consumption by the treeview. For example, an organization model and a person model. Based upon an attribute in the treeview model, we would like to present different templates. These templates would be set back on the server-side as the templates are stored in a database. The templates are designed by the end-users. Thus, when an organization row appears in the treeview, it uses the orgTemplate, and when the persons under the organization appear, they use the personTemplate.
As a suggestion for future development, make Kendo compatible with RazorGenerator.Mvc per this link: http://blog.mirajavora.com/re-use-mvc-views-across-projects-with-razor-generator
If I have a field defined as @Html.Kendo().TextBoxFor(m => m.Customer.CustomerNumber) then my complex property in my model will be correctly used. If however if add a name value i.e. @Html.Kendo().TextBoxFor(m => m.Customer.CustomerNumber).Name("CustNum") so that I can reference this field in javascript then this name takes precendence as the property name and as such the property in my model is not used. If we are using the 'For' version of an input field where we have already identified the property can this take precedence over using the Name field. That way we can simple names for use in the Javascript and yet still use complex properties.
in the option from Grid this feature is missing
When using Html.Kendo().DeferredScripts() possibly bundle all the controls initialization in one single jQuery initialization function, instead of a call for each of the deferred controls.
For R# action annotations details please check the following link - http://blogs.jetbrains.com/dotnet/2011/12/providing-intellisense-navigation-and-more-for-custom-helpers-in-aspnet-mvc/ And regarding additional actions for url builders - usually I have the action which provides the data for the grids in the same controller so I would prefer to write "... .Read(read => read.Action("LoadSitesData", new { id = Model.StudyId })" instead of "... .Read(read => read.Action("LoadSitesData", "StudySitesAdministration", new { id = Model.StudyId })"
have an option on the grids where it does not defualt to the date/local time. Users are asking for the same time to display across time zones. I use the workaround but we still have issues with it.
With the current version available from the DLL it will be possible to simplify bundling and include of CSS and JS files. I currently do something along the lines of //BundleConfig.cs var version = typeof(Kendo.Mvc.UrlGenerator).Assembly.GetName().Version; var kendoVersion = string.Format("{0}.{1}.{2}", version.Major, version.Minor, version.Build); bundles.Add(new StyleBundle("~/Content/kendo/"+kendoVersion+"/css").Include( "~/Content/kendo/"+kendoVersion+"/kendo.common.min.css", "~/Content/kendo/"+kendoVersion+"/kendo.default.min.css" )); bundles.Add(new ScriptBundle("~/Scripts/kendo/" + kendoVersion +"/scripts").Include( "~/Scripts/kendo/" + kendoVersion + "/kendo.all.min.js", "~/Scripts/kendo/" + kendoVersion + "/kendo.aspnetmvc.min.js", "~/Scripts/kendo/" + kendoVersion + "/cultures/kendo.culture.en-GB.min.js" )); And similarly in the views. Getting the version directly from the DLL without hacking around in Assembly.GetName.Version and string manipulation will make this clearer. I'd also suggest you update the documentation to reflect this pattern. As its a new method/getter, it is not a breaking change.
I would expect a fluent method chain to not produce side effects when a method is invoked more than once. particularly, concerning the ability to apply HtmlAttributes more than once to a method chain. This prevents me from implementing meaningful extension methods to promote a DRY approach to views. In particular, I am trying to do something like this: public static TextBoxBuilder<TProperty> PasswordFor<TModel, TProperty>(this WidgetFactory<TModel> widgetFactory, Expression<Func<TModel, TProperty>> expression) { return widgetFactory.TextBoxFor(expression).HtmlAttributes(new { type = "password" }); } public static TextBoxBuilder<TModel> AutoFocus<TModel>(this TextBoxBuilder<TModel> builder) { return builder.HtmlAttributes(new { autofocus = true }); } I am finding that because the HTML attributes is cleared in your base implementation.. this.Component.HtmlAttributes.Clear(); it doesn't support an aggregation of attributes, but instead it's last-man-in. that defeats the purpose of extensibility and effectively insists upon repetition and sort of brittle design that a copy/paste architecture results in. I would believe it be completely acceptable to give the last-attribute-applied precedence and overwrite the value, but the reality is that we're talking about basic key/value pairs, and it shouldn't be difficult to merge the attributes as they are built. best case, right now i have to implement my own derivation of the WidgetBuilderBase and implement an extension method off the WidgetFactory that bootstraps my functionality - certainly not a stretch, but more work than should probably be necessary. public virtual TBuilder HtmlAttributes(object attributes) { return this.HtmlAttributes(ObjectExtensions.ToDictionary(attributes)); } public virtual TBuilder HtmlAttributes(IDictionary<string, object> attributes) { this.Component.HtmlAttributes.Clear(); Kendo.Mvc.Extensions.DictionaryExtensions.Merge(this.Component.HtmlAttributes, attributes); return this as TBuilder; }
When using QueryableExtensions.ToDataSourceResult() from Telerik MVC, SQL following gets produced:
.. FROM [RMP].[V_UC_EQUIPMENT_LOG2_LOCALIZATION] WHERE ([Extent1].[LOG_TIME] >= convert(DateTimeOffset, ''2019-03-05 23:00:00.0000000 +00:00'', 121)) AND ([Extent1].[LOG_CLASS_ID] IN (78,7,18,30,19,16,17))
When we filter manually in code with linq, e. g.
.. table.Where(e => e.T_EquiID == 234234) ...
the linq provider produces a parameterized query as follows:
AND (@p__linq__0 = [Extent1].[T_EquiID])...
When using a parameterized query, Sql Server can reuse the execution plan much better saving compile time, which is in our case sometimes a big issue.
Please tell us, why can QueryExtensions do produce parameterized queries.