我尝试过在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>
答案 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();
这有助于你
此致