[英]Data isn't showing on Kendo Grid When Binding Data Source with ajax callback to Controller
我的問題與此類似:
將Kendo數據源與從C#MVC控制器操作調用的異步$ .ajax綁定
這是用於創建Kendo網格的javascript:
$(document).ready(function () {
$("#grid").kendoGrid({
dataSource: getData(),
height: 550,
groupable: true,
sortable: true,
pageable: {
refresh: true,
pageSizes: true,
buttonCount: 10
},
columns: [{
field: "a",
title: "a",
width: 200
}, {
field: "a",
title: "a"
}]
});
});
這是我用來獲取數據的getData函數,它是一個ajax回調函數,它在名為doSearch的控制器中調用一個動作
function getData() {
jQuery.ajax({
type: "POST",
url: "@Url.Action("doSearch")",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ needSearch: true }),
success: function (data) {
var dataSource = new kendo.data.DataSource({
data: JSON.parse(data)
});
dataSource.read();
return dataSource;
},
failure: function (errMsg) {
alert(errMsg);
}
});
}
回調很好,並且“數據”具有值,但是問題是:網格中沒有顯示數據。
這是數據的返回值:
[{"a": "First record"},{"a": "Second record"}]
代碼有什么問題? 為什么沒有顯示數據?
================================================== ===============
這是getData函數的更新代碼:
function getData() {
var grid = $("#grid").data("kendoGrid");
grid.dataSource.transport.read.url = '@Url.Action("doSearch",new {needSearch = true})';
grid.dataSource.read();
}
這是動作:
public ActionResult doSearch(bool needSearch)
{
return Json("[{\"a\": \"First record\"},{\"a\": \"Second record\"}]");
}
但是Controller中的doSearch操作沒有觸發
我嘗試了您的方式,但這對我有用:
function getData() {
var grid = $("#grid").data("kendoGrid");
grid.dataSource.transport.options.read.url = '@Url.Action("doSearch", new {needSearch = true})';
grid.dataSource.read();
}
備用:
$("#grid").kendoGrid({
dataSource: {
type: "json",
transport: {
read: '@Url.Action("doSearch", new {needSearch = true})'
}
}
);
注意:根據您的編輯,您的控制器方法需要更改為
public ActionResult doSearch(bool needSearch)
{
return Json(new[] { new { a = "First record" }, new { a = "Second record" }};
}
檢查這個
function getData() {
jQuery.ajax({
type: "POST",
url: "@Url.Action("doSearch")",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ needSearch: true }),
success: function (data) {
return data;
},
failure: function (errMsg) {
alert(errMsg);
}
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.