Я использую компонент Grid в своем проекте .NET 8, который динамически настраивает, отображает и редактирует столбцы таблицы SQL. Пока что он работает впечатляюще.
На данный момент я столкнулся только с одной проблемой. Когда я иду редактировать значение, которое использует Syncfusion.EJ2.Calendars.DateTimePicker, если вам интересно, данные для строк — это свойство:
public IEnumerable Data { get; set; }
Когда я подхожу к таблице, она отображает свойство даты. Даже когда я нажимаю, чтобы отредактировать ее, вношу изменения и снимаю щелчок по ячейке, все по-прежнему хорошо. Проблема возникает, когда я нажимаю кнопку «Обновить», чтобы фактически выполнить редактирование. Действие получает дату, и я вижу, что дата смещена вперед на 6 часов. Если после обновления я обновлю страницу, я увижу добавленное время на 6 часов. Итак, если дата была 2025-12-31 00:00:00 и я ввел 2025-12-31 06:00:00, при обновлении и обновлении отображается 2025-12-31 12:00:00.
Я пытался добавить несколько вариантов serverTimezoneOffset = 0 и = 6, но это делало ситуацию еще более странной. Например, значение будет отображаться правильно, но двойной щелчок для редактирования приведет к его увеличению еще до того, как я что-нибудь напишу. Затем я снова дважды щелкаю по нему, и оно увеличивается еще раз.
Я действительно хочу, чтобы отображалась точная дата, полученная из базы данных (как сейчас), и отредактированное значение было отправлено точно так, как я набрал.
Что здесь происходит?
HTML-представление:
@section Scripts {
document.addEventListener('DOMContentLoaded', () => {
var grid = document.getElementById('Grid').ej2_instances[0];
grid.dataSource = new ej.data.DataManager({
json: grid.dataSource,
batchUrl: '@Url.Action(nameof(DataProcessingController.Batch), ControllerHelper.GetName(), new { PipelineRunId = Model.PipelineRunId })',
adaptor: new ej.data.RemoteSaveAdaptor()
});
});
function onActionComplete(args) {
if (args.requestType === 'batchsave')
toastr.success('Saved.');
if (args.requestType === 'paging')
localStorage.setItem('gridPageSize', this.pageSettings.pageSize);
}
function onActionFailure() {
toastr.error('Update failed.');
}
function onCreated() {
const savedPageSize = localStorage.getItem('gridPageSize');
if (savedPageSize)
this.pageSettings.pageSize = parseInt(savedPageSize);
}
}
Processing
@Model.IssueMessage
@foreach (var col in Model.ColumnProperties)
{
bool isPrimary = col.Name == Model.PrimaryKeyColumnName;
bool isReadOnly = isPrimary || col.Name == "PipelineRunIdentifier" || col.Name == "SourceFileName";
string editType = "defaultedit";
string? format = null;
string? type = null;
var textAlign = TextAlign.Left;
var displayAsCheckBox = false;
var validationRules = new Dictionary { { "required", !col.IsNullable } };
var editParams = new object();
if (col.DataType is "decimal" or "float" or "numeric")
{
// ... settingsvv
}
else if (col.DataType is "int" or "bigint")
{
// ... settings
}
else if (col.DataType is "bit" or "boolean")
{
// ... settings
}
else if (col.DataType is "datetime" or "datetime2" or "smalldatetime")
{
// TODO issue with date time.
editType = "datetimepickeredit";
format = "yyyy-MM-dd HH:mm:ss";
type = "date";
textAlign = TextAlign.Right;
editParams = new Syncfusion.EJ2.Calendars.DateTimePicker {
ShowClearButton = false,
Format = "yyyy-MM-dd HH:mm:ss"
};
}
else if (col.DataType is "date")
{
// ... settings
}
else if (col.DataType is "nvarchar" or "varchar" or "char" or "nchar")
{
// ... settings
}
}
Подробнее здесь: https://stackoverflow.com/questions/799 ... zone-issue
Syncfusion Grid DateTimePicker отправляет смещение значения на 6 часов (проблема с часовым поясом) при пакетном редактир ⇐ Html
Программисты Html
1773077254
Anonymous
Я использую компонент Grid в своем проекте .NET 8, который динамически настраивает, отображает и редактирует столбцы таблицы SQL. Пока что он работает впечатляюще.
На данный момент я столкнулся только с одной проблемой. Когда я иду редактировать значение, которое использует Syncfusion.EJ2.Calendars.DateTimePicker, если вам интересно, данные для строк — это свойство:
public IEnumerable Data { get; set; }
Когда я подхожу к таблице, она отображает свойство даты. Даже когда я нажимаю, чтобы отредактировать ее, вношу изменения и снимаю щелчок по ячейке, все по-прежнему хорошо. Проблема возникает, когда я нажимаю кнопку «Обновить», чтобы фактически выполнить редактирование. Действие получает дату, и я вижу, что дата смещена вперед на 6 часов. Если после обновления я обновлю страницу, я увижу добавленное время на 6 часов. Итак, если дата была 2025-12-31 00:00:00 и я ввел 2025-12-31 06:00:00, при обновлении и обновлении отображается 2025-12-31 12:00:00.
Я пытался добавить несколько вариантов serverTimezoneOffset = 0 и = 6, но это делало ситуацию еще более странной. Например, значение будет отображаться правильно, но двойной щелчок для редактирования приведет к его увеличению еще до того, как я что-нибудь напишу. Затем я снова дважды щелкаю по нему, и оно увеличивается еще раз.
Я действительно хочу, чтобы отображалась точная дата, полученная из базы данных (как сейчас), и отредактированное значение было отправлено точно так, как я набрал.
Что здесь происходит?
HTML-представление:
@section Scripts {
document.addEventListener('DOMContentLoaded', () => {
var grid = document.getElementById('Grid').ej2_instances[0];
grid.dataSource = new ej.data.DataManager({
json: grid.dataSource,
batchUrl: '@Url.Action(nameof(DataProcessingController.Batch), ControllerHelper.GetName(), new { PipelineRunId = Model.PipelineRunId })',
adaptor: new ej.data.RemoteSaveAdaptor()
});
});
function onActionComplete(args) {
if (args.requestType === 'batchsave')
toastr.success('Saved.');
if (args.requestType === 'paging')
localStorage.setItem('gridPageSize', this.pageSettings.pageSize);
}
function onActionFailure() {
toastr.error('Update failed.');
}
function onCreated() {
const savedPageSize = localStorage.getItem('gridPageSize');
if (savedPageSize)
this.pageSettings.pageSize = parseInt(savedPageSize);
}
}
Processing
@Model.IssueMessage
@foreach (var col in Model.ColumnProperties)
{
bool isPrimary = col.Name == Model.PrimaryKeyColumnName;
bool isReadOnly = isPrimary || col.Name == "PipelineRunIdentifier" || col.Name == "SourceFileName";
string editType = "defaultedit";
string? format = null;
string? type = null;
var textAlign = TextAlign.Left;
var displayAsCheckBox = false;
var validationRules = new Dictionary { { "required", !col.IsNullable } };
var editParams = new object();
if (col.DataType is "decimal" or "float" or "numeric")
{
// ... settingsvv
}
else if (col.DataType is "int" or "bigint")
{
// ... settings
}
else if (col.DataType is "bit" or "boolean")
{
// ... settings
}
else if (col.DataType is "datetime" or "datetime2" or "smalldatetime")
{
// TODO issue with date time.
editType = "datetimepickeredit";
format = "yyyy-MM-dd HH:mm:ss";
type = "date";
textAlign = TextAlign.Right;
editParams = new Syncfusion.EJ2.Calendars.DateTimePicker {
ShowClearButton = false,
Format = "yyyy-MM-dd HH:mm:ss"
};
}
else if (col.DataType is "date")
{
// ... settings
}
else if (col.DataType is "nvarchar" or "varchar" or "char" or "nchar")
{
// ... settings
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79903983/syncfusion-grid-datetimepicker-submits-value-offset-by-6-hours-timezone-issue[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия