I have a page that contains a grid. The grid contains a number column. The grid is using a custom popup editor. For the number column I am using an input instead of the telerik control for numbers.
The application is localized.
When I am using a culture where the decimal separator is comma(",") when changing the number after leaving the input the decimal separator is changed from comma to point.
I have prepared a demo
https://dojo.telerik.com/UvAfafor/2
Here are the steps to reproduce the problem:
1. Edit the 5th row (the one that has decimals 21.35 - anyone that has decimals should work)
2. Change the decimal point from point to comma (The code from gridEdit does not work - even though in my application works[however I am using globalize package])
3. Leave the input (The decimal point should remain to comma)
4. Go to UnitPrice and add at the end a new digit (can be added or removed any digit as long as the comma is not removed)
5. Leave the input => wrong behavior the comma is converted to point.
=> expected behavior the comma should remain regardless of how many times I change the value
Hello there,
We have a customer who wants to override decimal sepataor in a specific culture. We have tried to override it before any widget is initialized. Also created our custom culture file and used it but the result is the same. kendo.culture().numberFormat["."] show the sybol we want, but in the UI is still the default symbol. Here is a dojo showing that only curency symbol is being overwritten.
https://dojo.telerik.com/USUkomuY/5

Hello
I would ask about possibility to close last panel when expandmode is single. Multiple expand mode allows close all panels, single not.
How to close all panels in single mode.

I'm following some of the most basic kendoPDFViewer examples, and this section of code in the js file consistently crashes;
var pdfViewer = $("#documentViewer").data("kendoPDFViewer");
if (!pdfViewer) {
pdfViewer = $("#documentViewer").kendoPDFViewer({ //<------crashes here
pdfjsProcessing: {
file: ""
},
width: "100%",
height: 500
}).data("kendoPDFViewer");
}
#documentViewer is the id of the div I'm attempting to attach the viewer to. Debugging shows the problem happening when I try to declare the currently null pdfViewer as a kendoPDFViewer. I made sure to include the pdf scrips in my index.html as well.
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.2.2/pdf.js"></script>
<script> window.pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.2.2/pdf.worker.js';</script>
Am I putting the scripts in the wrong location or something?
Thanks.
Hi All,
I work in one of the Big 4 firms and we have been using Kendo for a few years now but recently an issue has cropped up when virtual vertical scrolling does not work when the grid is sorted on a column. It does not matter what column. Scrolling works fine without the sorting when the grid loads. When sorted on any column the grid loads the first pagesize items but on going to the end of the page the new items does load. No call to the server also being made and no network or console activity
Here is the code
@(Html.Kendo().Grid<IGridItem>()<br> .Name(gridName)<br> .HtmlAttributes(new { @class = "table-response browse-table " + Model.GridType.ToString().ToLower() + "-grid-type" })<br> .Columns(columns =><br> {<br> columns<br> .Bound("Name")<br> .Title(MarkupMessages.Grid_NameHeader)<br> .Width(500)<br> .HeaderTemplate("<span" + MarkupMessages.Grid_NameHeader + "</span>")<br> .HtmlAttributes(new { @class = "name-column" })<br> .ClientTemplate(nameColumnTemplate)<br> .Locked(true)<br> .Lockable(false)<br> .Hidden(false)<br> .Sortable(true)<br> .Filterable(false)<br> .Visible(Model.GridColumnConfiguration.HasFlag(GridColumnEnum.Name));<br> columns<br> .Bound("ID")<br> .Title("")<br> .Width(30)<br> .HeaderTemplate("")<br> .HtmlAttributes(new {@class = "context-menu-column"})<br> .ClientTemplate(menuColumnTemplate)<br> .Locked(true)<br> .Lockable(false)<br> .Hidden(false)<br> .Sortable(false)<br> .Visible(Model.GridColumnConfiguration.HasFlag(GridColumnEnum.ID))<br> .Filterable(false);<br> columns<br> .Bound("Category")<br> .Title(MarkupMessages.Grid_CategoryHeader)<br> .Width(200)<br> .ClientTemplate("<div>#: Category #</div> ")<br> .Locked(false)<br> .Lockable(false)<br> .Hidden(false)<br> .Sortable(true)<br> .Visible(Model.GridColumnConfiguration.HasFlag(GridColumnEnum.Type))<br> .Filterable(filter =><br> {<br> filter.Multi(true);<br> filter.CheckAll(false);<br> filter.ItemTemplate("itemTemplate");<br> filter.DataSource(source =><br> {<br> source.Read(r => r.Url(Model.Url));<br> source.Events(e => e.RequestStart("GridHelper.filterCancelRequest"));<br> });<br> });<br> columns<br> .Bound("LastModifiedDate")<br> .Title(MarkupMessages.Grid_LastModifiedDateHeader)<br> .Width(200)<br> .ClientTemplate("<div>#: LastModifiedDate #<div>")<br> .Locked(false)<br> .Lockable(false)<br> .Hidden(false)<br> .Sortable(true)<br> .Filterable(false)<br> .Visible(Model.GridColumnConfiguration.HasFlag(GridColumnEnum.LastModifiedDate));<br> .DataSource(ds => ds<br> .Ajax()<br> .ServerOperation(Model.ServerOperation)<br> .Sort(sort =><br> {<br> if (Model.DefaultSortOrder == SortDirection.Descending)<br> {<br> sort.Add(Model.DefaultSort).Descending();<br> }<br> else<br> {<br> sort.Add(Model.DefaultSort).Ascending();<br> }<br> })<br> .PageSize(200)<br> .Read(read =><br> {<br> read.Url(Model.Url);<br> read.Data(dataSourceGetAdditionalData);<br> })<br> .Events(events => events.Error(dataSource_Error)))<br> .AutoBind(false)<br> .Sortable(sortable => sortable.SortMode(GridSortMode.SingleColumn).AllowUnsort(false))<br> .Scrollable(scrollable => scrollable.Virtual(true).Height(382))<br> .Resizable(resizable => resizable.Columns(true))<br> .Reorderable(reorder => reorder.Columns(true))<br> .Filterable(filter =><br> {<br> filter.Enabled(true);<br> filter.Extra(false);<br> })<br> .Events(events =><br> {<br> if (!String.IsNullOrEmpty(gridEvent_SelectionChanged))<br> {<br> events.Change(gridEvent_SelectionChanged);<br> }<br><br> if (!String.IsNullOrEmpty(gridEvent_DataBound))<br> {<br> events.DataBound(gridEvent_DataBound);<br> }<br><br> if (!String.IsNullOrEmpty(gridEvent_DataBinding))<br> {<br> events.DataBinding(gridEvent_DataBinding);<br> }<br><br> if (!String.IsNullOrEmpty(gridEvent_FilterInitialize))<br> {<br> events.FilterMenuInit(gridEvent_FilterInitialize);<br> }<br><br> if (!String.IsNullOrEmpty(gridEvent_ColumnReorder))<br> {<br> events.ColumnReorder(gridEvent_ColumnReorder);<br> }<br> }))var battingDataSource = new kendo.data.DataSource({ schema: { model: { id: "PlayerId", fields: { PlayerId: { editable: false, nullable: true }, PlayerFullName: { validation: { required: true } }, BattingOrder: { type: "number", validation: { required: true, min: 1, max: 11 } }, RunsScored: { type: "number", validation: { required: true, min: 0 } }, BallsFaced: { type: "number", validation: { required: true, min: 0 } }, Fours: { type: "number", validation: { required: true, min: 0 } }, Sixes: { type: "number", validation: { required: true, min: 0 } }, } } }, batch: true, transport: { create: { url: "/MatchPlayer/Create", type: "POST" }, update: { url: "/MatchPlayer/Update", type: "POST" }, read: { url: "/MatchPlayer/Read", type: "POST" }, }, parameterMap: function (data, operation) { alert("hit"); if (operation != "read") { // post the players so the ASP.NET DefaultModelBinder will understand them: var result = {}; for (var i = 0; i < data.models.length; i++) { var player = data.models[i]; for (var member in player) { result["players[" + i + "]." + member] = player[member]; } } return result; } }});