无法通过自定义按钮刷新Kendo Grid?

时间:2015-12-06 09:57:43

标签: javascript asp.net-mvc kendo-ui kendo-grid kendo-asp.net-mvc

我尝试过在stackoverflow和其他页面上建议的许多不同方法,但仍无法刷新Kendo Grid上的数据。我遇到" TypeError:$(...)。data(...)未定义"应用以下方法时出错。有任何帮助吗?

<div id="grid"></div>
<button id="refresh" class="k-button" onclick="Refresh()">Refresh</button>


<script>
    var grid = $("#grid").kendoGrid({
        //code omitted for brevity
        dataSource: {
            type: "json",
            transport: {
                read: {
                    url: "/Event/Event_Read",
                    dataType: "json",
                    cache: false
                    }
            },
            schema: {
                model: {
                    fields: {
                        CardNo: { type: 'number' }
                        //code omitted for brevity                         
                    }
                }
            }
        },
        pageable: {
            pageSize: 15,
            refresh: true
        },
        filterable: true,
        columns:
        [
            { field: "CardNo", title: "Card No", filterable: true }
            //code omitted for brevity              
        ]
    }).data("kendoGrid");

    function Refresh() {
        $("#grid").data("kendoGrid").dataSource.read();
        $("#grid").data("kendoGrid").refresh();
    }
</script>

3 个答案:

答案 0 :(得分:3)

您可以尝试使用此代码,包含以下css和js并尝试重新加载网格。

<!DOCTYPE html>
<html>
<head>
<title></title>
<link rel="stylesheet" href="styles/kendo.common.min.css" />
<link rel="stylesheet" href="styles/kendo.default.min.css" />

<script src="js/jquery.min.js"></script>
<script src="js/kendo.all.min.js"></script>
</head>
<body>
<div id="grid"></div>
<button id="refresh" class="k-button" onclick="Refresh()">Refresh</button>


<script type="text/javascript">
$(function () {
var grid = $("#grid").kendoGrid({
    //code omitted for brevity
    dataSource: {
        type: "json",
        transport: {
            read: {
                url: "/Event/Event_Read",
                dataType: "json",
                cache: false
                }
        },
        schema: {
            model: {
                fields: {
                    CardNo: { type: 'number' }
                    //code omitted for brevity                         
                }
            }
        }
    },
    pageable: {
        pageSize: 15,
        refresh: true
    },
    filterable: true,
    columns:
    [
        { field: "CardNo", title: "Card No", filterable: true }
        //code omitted for brevity              
    ]
}).data("kendoGrid");

function Refresh() {
    $("#grid").data("kendoGrid").dataSource.read();
    $("#grid").data("kendoGrid").refresh();
}
});
</script>

为我工作并参考了this telerik网站。

答案 1 :(得分:2)

这应刷新网格:

$("#grid").data("kendoGrid").dataSource.read(); 

刷新方法再次从数据源填充网格。如果数据没有改变,网格也不会改变。

如果你遇到了萤火虫错误

  

TypeError:$(...)。data(...)未定义

这意味着在调用此代码或选择器错误时,网格尚未初始化。 确保不要将网格名称与其他控件混淆

尝试更改您的选择器名称。

$("#MyGrid").data("kendoGrid").dataSource.read();

答案 2 :(得分:2)

请试试这个

$(".k-pager-refresh").trigger('click');

在刷新功能

或试试这个

$("#grid").data("kendoGrid").dataSource.read(); 
$("#grid").data("kendoGrid").refresh();

这有助于你

此致