[英]Mvc Kendo grid - Doesn't show any data that returned from controller
我想在Kendo網格上執行的操作是將所選列的ID傳遞給控制器,返回的數據將是同一頁面上第二個kendo網格的數據源,而無需任何頁面加載或刷新。
一切都在服務器端運行良好。所需的數據將以json格式返回以供查看,但第二個網格無法顯示該數據。
JS:
e.preventDefault();
var tr = $(e.target).closest("tr"); // get the current table row (tr)
var dataItem = this.dataItem($(e.target).closest("tr"));
//Data that coming from kendo grid's selected column
var code = dataItem.CODE;
// alert(code);
var crudServiceBaseUrl = "/Administrator/DefinitionDetailRead/",
dataSource = new kendo.data.DataSource({
transport: {
read: {
url: crudServiceBaseUrl,
data: { DefinitionCode: code },
dataType: "json"
},
update: {
url: crudServiceBaseUrl + "/Products/Update",
dataType: "json"
},
destroy: {
url: crudServiceBaseUrl + "/Products/Destroy",
dataType: "json"
},
create: {
url: crudServiceBaseUrl + "/Products/Create",
dataType: "json"
},
},
//batch: true,
pageSize: 9,
schema: {
model: {
ID: "ID",
fields: {
ID: { editable: false, nullable: true },
DESCRIPTION: { validation: { required: true } }
}
}
}
});
$("#detailsGrid").kendoGrid({
dataSource: dataSource,
attributes: {
style: "padding-left: 0px; font-size: 14px"
},
pageable: {
refresh: false,
pageSizes: false,
buttonCount: 5
},
toolbar: ["create"],
columns: [
{
field: "DESCRIPTION",
title: "DESCRIPTION",
//filterable: {
// ui: titleFilter
//},
width: "200px"
},
{ command: ["edit", "destroy"], title: "Operation", width: "100px" }],
editable: "popup"
});
負責人:一切都在這里工作。
public ActionResult DefinitionDetailRead([DataSourceRequest] DataSourceRequest request, string DefinitionCode)
{
DataSourceResult result = null;
var lang = CultureHelper.GetCulture();
using (var client = SoapProxyFactory.CreateDSrvGDSoapClient())
{
var pSize = request.PageSize;
var pIndex = request.Page;
var totalsize = client.GetDefinitionDetailsTotalCount(DefinitionCode, lang);
var dataresult = client.GetDefinitionDetails(DefinitionCode, lang, false);
var items = dataresult.RootResults;
result = items.ToDataSourceResult(request, totalsize, null);
}
return Json(result, JsonRequestBehavior.AllowGet);
#endregion
}
Json來自控制器的數據:
{“數據”:[{“擴展數據”:{},“代碼”:“異常”,“代碼類型”:空,“計數”:0,“描述”:“異常(在Resp下檢查)”,“輸入日期”日期null, “ID”: “1b0a0cd8-8fed-4b34-9054-1e73942a16d2”, “ISACTIVE”:假 “ISDEFAULT”:假 “ISSELECTED”:假 “LANG”:NULL, “注1”:NULL,”注2 “:空,” ORDERINDEX “:空,” PARENTDESCRIPTION “:空,” PARENTID “:” 00000000-0000-0000-0000-000000000000" , “REFERENCEID”: “3df1f5d7-bc04-4554-bf01-1a9d5b95eebb”,” VALUE“:空}
問題是您不是在說返回的數據中實際上是包含數據的數組的位置。
您的model
定義應為:
schema: {
data: "Data",
model: {
ID: "ID",
fields: {
ID: {
editable: false,
nullable: true
},
DESCRIPTION: {
validation: { required: true }
}
}
}
}
我在其中添加data: "Data"
通知需要檢查Data
KendoUI網格。
您的示例在此處修改: http : //jsfiddle.net/OnaBai/ZEndW/
將數據源的類型指定為“ aspnet-mvc”。 在此之前,請確保已加載kendo.aspnetmvc.min.js文件。
另外,您還必須指定架構配置。
它看起來應該像這樣:
"dataSource": {
"transport": {
"prefix": "",
"read": {
"url": ""
}
},
"pageSize": 20,
"page": 1,
"total": 0,
"type": "aspnetmvc-ajax",
"schema": {
"data": "Data",
"total": "Total",
"errors": "Errors",
"model": {
"fields": {
"id": {
"type": "number"
},
"quantity": {
"type": "number"
},
"name": {
"type": "string"
}
}
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.