保存更改后刷新网格批量编辑不刷新

时间:2017-10-12 01:32:05

标签: jquery asp.net-mvc kendo-ui telerik kendo-grid

我有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; }
}

这是网格的图像:

enter image description here

0 个答案:

没有答案