首页 > 解决方案 > 如果数据库有新行,如何更新 Kendo Grid?

问题描述

我正在制作一个 MVC ASP.NET 应用程序,我想在其中使用 Kendo 可视化数据。我已经可以从数据库加载数据,但现在我想在有新行时自动执行此操作,然后网格必须刷新。但是这样做的正确方法是什么?

我的网格:

@(Html.Kendo().Grid<NFC.Areas.Admin.ViewModels.Grids.ObjectDetectionGrid>()
  .Name("grid")
  .Columns(columns =>
  {
      columns.Bound(c => c.Id)
        .Width(100)
        .MinScreenWidth(1020);
      columns.Bound(c => c.DetectionTime)
        .Format("{0:d-M-yyyy H:mm:ss}")
        .MinScreenWidth(1500);
      columns.Bound(c => c.Score)
        .MinScreenWidth(1500);
      columns.Bound(c => c.Name)
        .MinScreenWidth(1500);
      columns.Bound(c => c.Id)
        .Title("Image")
        .ClientTemplate("<img class='img-responsive' src='Detections/GetImage?Id=#: Id #' />");
  })
  .Sortable()
  .Pageable(x => x.PageSizes(new List<object> { 10, 20, 50, 100, 250, 500, "all" }).Refresh(false))
  .Filterable()
  .Sortable()
  .DataSource(dataSource => dataSource
      .Ajax()
      .Model(model => {
          model.Id(p => p.Id);
      })
      .Sort(s => s.Add(x => x.Id).Descending())
      .Events(events => events.Error("kendoGrid_ErrorHandler"))
      .Read(read => read.Action("KendoGrid_Read", "Detections"))
  )
)

我的控制器读取功能:

 public ActionResult KendoGrid_Read([DataSourceRequest]DataSourceRequest request)
    {
        IQueryable<ObjectDetectionGrid> detections = db.ObjectDetections.Select(x => new ObjectDetectionGrid()
        {
            Id = x.Id,
            DetectionTime = x.DetectionTime,
            Name = x.Name,
            Score = x.Score
        });

        return Json(detections.ToDataSourceResult(request));
    }

希望你们能帮帮我。

标签: c#asp.netmodel-view-controllerkendo-ui

解决方案


推荐阅读