Я использую Kendo Grid.
@(Html.Kendo().Grid<Kosten>()
.Name("gridKosten")
.Columns(columns =>
{
columns.Bound(c => c.Costs);
})
.DataSource(dataSource => dataSource
.Ajax()
.Events(events => events.Error("gridError"))
.Model(model => model.Id(c => c.Id))
.Create(create => create.Action("Kosten_Create", "FahnenSettings"))
.Read(read => read.Action("Kosten_RetrieveAll", "FahnenSettings"))
.Update(update => update.Action("Kosten_Update", "FahnenSettings"))
)
.Editable(editable => editable
.Mode(GridEditMode.InLine)
)
.ToolBar(toolbar => toolbar.Create())
)
Также я установил культуру на немецкий.
<script src="https://kendo.cdn.telerik.com/2020.1.219/js/cultures/kendo.culture.de-DE.min.js"></script>
<script src="https://kendo.cdn.telerik.com/2020.1.219/js/messages/kendo.messages.de-DE.min.js"></script>
<script>
$(function () {
kendo.culture("de-DE");
})
</script>
Все работает отлично. В моем столбце «Затраты» отображается значение «1,245,21 €». Но когда я активирую функцию «Редактировать», значение на входе изменилось на «1245.21» (проверьте разделитель). Измените ли я значение сейчас на что-то вроде «1245,20», значение станет «124,520,00 €».
Так что, если я хочу получить правильное значение, мне всегда нужно возвращать разделитель "." "," вручную. Моя культура настроена на немецкий язык, она показывает немецкое значение и корректно интерпретирует орфографию немецкого языка с запятой после редактирования. Но в тот момент, когда я открываю встроенный режим редактирования, разделитель меняет нам формат с точки.
Как мне этого избежать? У кого-то есть идея?
Свойство столбца задается в модели как
[DataType(DataType.Currency)]
public decimal Costs { get; set; }