如何刷新 Kendo UI 网格

Posted

技术标签:

【中文标题】如何刷新 Kendo UI 网格【英文标题】:How to refresh the Kendo UI grid 【发布时间】:2013-05-04 11:25:42 【问题描述】:

我正在尝试刷新 Kendo UI 网格,但尚未成功。有人能告诉我我错过了什么或我做错了什么吗?

我有以下代码:

.cshtml:

 $('#btnRefresh').click(function (e)

            $.ajax(
                type: 'POST',
                url: "@(Url.Content("~/Administration/RefreshAll/"))",

                success: function () 
                    $("#Product").data("kendoGrid").dataSource.read();
                    $('#Product').data('kendoGrid').refresh();
                    //grid.refresh();
                    location.reload(true);
                ,
                error: function ()
                    $("#btnRefresh").removeAttr('disabled');
                
            );


      );

控制器:

public ActionResult RefreshAll([DataSourceRequest] DataSourceRequest request)
        
            db.ProcessAll();
            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            return View();
        

【问题讨论】:

【参考方案1】:

你的脚本应该是

$('#btnRefresh').click(function (e)
        var grid = $("#Product").data("kendoGrid");
               grid.dataSource.page(1);
               grid.dataSource.read();
      );

在您的控制器中添加引用

using Kendo.Mvc.UI; using Kendo.Mvc.Extensions;

你的ActionResult应该是

public ActionResult RefreshAll([DataSourceRequest] DataSourceRequest request)
        
            //assuming db.ProcessAll() will return a list object
            return Json(db.ProcessAll().ToDataSourceResult(request));
        

【讨论】:

public void ProcessAll() 因此我无法以 JSON 格式返回 您需要将一个列表对象传递给模型。 @HaBo 谢谢,但这给出了“TypeError: $(...).data(...) is undefined”错误。我还查看了许多页面并尝试了此解决方案的不同变体,但仍然得到相同的错误。有什么想法吗? @chrisrof 检查您的网格选择器

以上是关于如何刷新 Kendo UI 网格的主要内容,如果未能解决你的问题,请参考以下文章

记住在 Kendo-UI 中刷新时扩展的细节网格

如何使用 JQuery 在 Kendo Ui Grid 上刷新“页脚”

在下拉选择的索引更改事件上刷新 Kendo UI 网格

如何使用 Kendo UI Grid 的 SetDataSource 方法

如何刷新 Kendo UI 组合框?

刷新 Kendo Grid Jquery 中的 DetailiInit