我有Grid/Batch editing Grid 当我对行进行一些更改然后正确更新到数据库但它仍然出现k-dirty类然后当我按下取消更改按钮时显示它之前的值。但是,如果我用F5刷新页面,它会显示已更新的值。
我不知道问题是什么,我尝试使用
$("#grid").data("kendoGrid").dataSource.read();
和
$("#grid").data("kendoGrid").dataSource.refresh();
而不是每次我对网格进行一些更改时按F5,但它仍然不起作用。 我有什么想法可以解决这个问题吗?
这是我的网格:
$("#grid").kendoGrid({
dataSource: dataSource,
toolbar: ["save", "cancel"],
height: 600,
sortable: true,
pageable: true,
columns: [
{
field: "OrdenCompraNumero",
title: "Nro. Orden de Compra",
width: "90px"
},
{
field: "FechaDeEmision",
title: "Fecha de Emisión",
template: "#= kendo.toString(kendo.parseDate(FechaDeEmision), 'MM/dd/yyyy HH:mm tt')#",
width: "110px"
},
{
field: "FormaPago",
title: "Forma de Pago",
width: "110px",
template: "#=FormaPago.Nombre#"
},
{
field: "Aseguradora",
title: "Aseguradora",
width: "110px",
template: "#=Aseguradora.Nombre#"
},
{
field: "SubTotal",
title: "Sub Total",
format: "{0:n}",
width: "110px"
},
{
field: "Estado",
title: "Estado",
width: "110px",
editor: estadoDropDownEditor, template: "#=Estado.Descripcion#"
}
],
editable: true
});
$("#grid").data("kendoGrid").dataSource.read();
function estadoDropDownEditor(container, options) {
$('<input required name="' + options.field + '"/>')
.appendTo(container)
.kendoDropDownList({
autoBind: false,
dataTextField: "Descripcion",
dataValueField: "Id",
dataSource: {
transport: {
read: {
url: "/api/estados",
dataType: "json"
}
}
}
});
}
这是我在控制器中更新更改的操作:
public JsonResult EditarOrdenCompra(OrdenCompraDto ordenCompraDto)
{
var orden = _context.OrdenCompras.Single(oc => oc.Id == ordenCompraDto.Id);
orden.Id = ordenCompraDto.Id;
orden.OrdenCompraNumero = ordenCompraDto.OrdenCompraNumero;
orden.FechaDeEmision = ordenCompraDto.FechaDeEmision;
orden.AseguradoraId = ordenCompraDto.AseguradoraId;
orden.FormaPagoId = ordenCompraDto.FormaPagoId;
orden.SubTotal = ordenCompraDto.SubTotal;
orden.EstadoId = ordenCompraDto.Estado.Id;
_context.SaveChanges();
var resultado = Mapper.Map<OrdenCompra, OrdenCompraDto>(orden);
return Json(resultado, JsonRequestBehavior.AllowGet);
}
这是我的域类:
public class OrdenCompra
{
public int Id { get; set; }
public int OrdenCompraNumero { get; set; }
public DateTime FechaDeEmision { get; set; }
public FormaPago FormaPago { get; set; }
public byte FormaPagoId { get; set; }
public int SubTotal { get; set; }
public Estado Estado { get; set; }
public byte EstadoId { get; set; }
public Aseguradora Aseguradora { get; set; }
public byte AseguradoraId { get; set; }
public ICollection<OrdenCompraDetalle> OrdenCompraDetalles { get; set; }
public OrdenCompra()
{
OrdenCompraDetalles = new HashSet<OrdenCompraDetalle>();
}
这是我的DTO课程:
public class OrdenCompraDto
{
public int Id { get; set; }
public int OrdenCompraNumero { get; set; }
public DateTime FechaDeEmision { get; set; }
public FormaPagoDto FormaPago { get; set; }
public byte FormaPagoId { get; set; }
public int SubTotal { get; set; }
public EstadoDto Estado { get; set; }
public byte EstadoId { get; set; }
public AseguradoraDto Aseguradora { get; set; }
public byte AseguradoraId { get; set; }
}
这是网格的图像: