net mvc kendo editable demos batch asp asp.net-mvc datetime kendo-ui kendo-grid

asp.net-mvc - kendo - telerik asp net mvc grid popup



El formato de fecha está cambiando mientras se obtienen datos usando Kendo Grid (1)

Yo también tuve este problema, lo resolví comprobando el formato de datos en el momento de guardarlo.

1- encuentra los datos mientras guardas

var dataS = $("#grid").data("kendoGrid").dataSource; var updatedData = dataS._data;

2- comprueba el formato y luego guárdalo, mi parámetro de datos es rsrc_dt

var dateValue = updatedData[i].rsrc_dt; var day; var year; var mon; if (typeof dateValue === ''string'' || dateValue instanceof String) { day = dateValue.split(''/'')[0]; // use when date is not in correct string format mon = dateValue.split(''/'')[1]; year = dateValue.split(''/'')[2]; var dateS = day + ''/'' + mon + ''/'' +year; serverData[i].rsrc_dt = dateValue; } else if (dateValue instanceof Date) { var date = new Date(updatedData[i].rsrc_dt); year = date.getFullYear(); day = date.getDate(); day = day < 10 ? ''0'' + day : day mon = date.getMonth(); mon = mon + 1; mon = mon < 10 ? ''0'' + mon : mon; var dateF = day + "/" + mon + "/" + year; serverData[i].rsrc_dt = dateF; }

3- Puede intentar esto también, dar formato de datos en una plantilla de campo como esta

{ field: "rsrc_dt", title: "Session Date", format: "{0:dd/MM/yyyy}", editor: dateTimeEditor, width: 73, attributes: { "class": "azN" }, },

4- Use DateEditor

function dateTimeEditor(container, options) { $(''<input name="editableBlock" data-text-field="'' + options.field + ''" data-value-field="'' + options.field + ''" data-bind="value:'' + options.field + ''" data-format="'' + options.format + ''"/>'') .appendTo(container) .kendoDatePicker({ min: btch_strt_dt }); }

Estoy tratando de buscar y cargar datos a una grilla kendo usando algunos parámetros. Pero cuando estoy usando el parámetro de fecha, el formato de la fecha está cambiando, por lo tanto, me muestra las fechas incorrectas en el lado del servidor.

Como ejemplo, como parámetro que estoy usando: nueva Fecha ("01 de abril de 2016"). Pero en el servidor se convierte en 04/01/2016 que es incorrecto.

function passFilterCstDetails() { var statemenetInquiryParameter = {}; statemenetInquiryParameter.isPrintZero = true; statemenetInquiryParameter.isPrintPayments = true; statemenetInquiryParameter.isPrintAdjust = true; statemenetInquiryParameter.cst_stmt_from = new Date("April 01, 2016"); statemenetInquiryParameter.cst_stmt_to = new Date("April 12, 2016"); statemenetInquiryParameter.customerCode = 007; return { statemenetInquiryParameter: statemenetInquiryParameter } }

<div class="row"> <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12"> @(Html.Kendo().Grid<ServicePROWeb.ServiceProWCFService.CstTran>() .Name("gridCustomerCstTranDetails") .Columns(columns => { columns.Bound(p => p.cst_inv_date).Title("Invoice Date").HtmlAttributes(new { @style = "text-align: right;" }).Format(Session["DisplayFormat_GridDate"].ToString()).Width(80); columns.Bound(p => p.cst_type).Title("Type").Width(80); columns.Bound(p => p.cst_ih_invno).Format("{0:n2}").HtmlAttributes(new { @style = "text-align: right;" }).Filterable(false).Title("Invoice Number").Width(80); columns.Bound(p => p.cst_dr_amount).Format("{0:n2}").HtmlAttributes(new { @style = "text-align: right;" }).Filterable(false).Title("Debit").Width(80); columns.Bound(p => p.cst_cr_amount).Format("{0:n2}").HtmlAttributes(new { @style = "text-align: right;" }).Filterable(false).Title("Credit").Width(80); columns.Bound(p => p.cst_dr_balance).Format("{0:n2}").HtmlAttributes(new { @style = "text-align: right;" }).Filterable(false).Title("Balance").Width(80); }) .Selectable() .Sortable() .Scrollable() .Resizable(resize => resize.Columns(true)) .HtmlAttributes(new { style = "cursor:pointer;height:auto;width:auto;margin-top: 0px;" }) .DataSource(dataSource => dataSource .Ajax() .Read(read => read.Action("LoadCustomerStatementEnquiryDetails", "Stage").Data("passFilterCstDetails"))) ) </div> </div>

public class StatemenetInquiryParameter { public decimal customerCode { get; set; } public DateTime cst_stmt_from { get; set; } public DateTime cst_stmt_to { get; set; } public bool isPrintZero { get; set; } public bool isPrintPayments { get; set; } public bool isPrintAdjust { get; set; } } public ActionResult LoadCustomerStatementEnquiryDetails([DataSourceRequest]DataSourceRequest request, StatemenetInquiryParameter statemenetInquiryParameter) { List<CstTran> l = new List<CstTran>(); for (int i = 0; i < 12; i++) { CstTran c = new CstTran(); c.cst_inv_date = statemenetInquiryParameter.cst_stmt_from.AddDays(i); c.cst_type = "I"; c.cst_ih_invno = i + 1; c.cst_dr_amount = i; c.cst_cr_amount = 0; c.cst_dr_balance = c.cst_dr_balance + i; l.Add(c); } return Json(l.ToDataSourceResult(request)); }