jsGrid 不会呈现 JSON 数据
jsGrid won't render JSON data
我正在尝试在我的 MVC 项目中使用 jsGrid,因为客户希望进行内联编辑和过滤。
但是,我无法将我的 JSON 源加载到 table。
我加载 table 的 js 如下所示:
$("#jsGrid").jsGrid({
height: "50%",
width: "100%",
filtering: true,
inserting: true,
editing: true,
sorting: true,
paging: true,
autoload: true,
pageSize: 10,
pageButtonCount: 5,
deleteConfirm: "Do you really want to delete client?",
controller: {
loadData: function (filter) {
return $.ajax({
type: "GET",
url: "RICInstrumentCode/GetData",
data: filter,
dataType: "json"
});
},
insertItem: function (item) {
return $.ajax({
type: "CREATE",
url: "/api/RICInsrumentCodeTable",
data: item,
dataType: "json"
});
},
updateItem: function (item) {
return $.ajax({
type: "UPDATE",
url: "/api/RICInsrumentCodeTable/" + item.ID,
data: item,
dataType: "json"
});
},
deleteItem: $.noop
//deleteItem: function (item) {
// return $.ajax({
// type: "DELETE",
// url: "/api/data/" + item.ID,
// dataType: "json"
// });
//}
},
fields: [
{ name: "Code", type: "text", title: "RIC Instrument Code", width: 150 },
{ name: "Descr", type: "text", title:"RIC Instrument Code Description", width: 200 },
{ name: "RICInstrumentGroupId", type: "select", title: "RIC Instrument Group", items: countries, valueField: "Id", textField: "Name" },
{ name: "Active", type: "checkbox", title: "Is Active", sorting: true },
{ type: "control" }
]
});
});
我一直在研究 loadData。
和 JSON 从获取数据中 return 看起来像这样:
[{"Id":1,"Code":"test1","Descr":"first code test","RICInstrumentGroupId":2,"Active":true},{"Id":2,"Code":"APP","Descr":"Apples and bananas","RICInstrumentGroupId":4,"Active":true},{"Id":3,"Code":"1","Descr":"1","RICInstrumentGroupId":1,"Active":true},{"Id":4,"Code":"3","Descr":"3","RICInstrumentGroupId":3,"Active":false}]
到目前为止,我已经确认 ajax 正在触发,更改了我的数组标题以匹配调用的标题,并确保 return 有效 JSON,还有什么我可以做吗?
我一辈子都弄不明白为什么这行不通。
任何帮助将不胜感激。
提前致谢,
杰顿赖默
我不知道是否需要,但是当我查看演示示例(OData 服务)时。
网格 loadData 函数看起来与您的有点不同。
loadData: function() {
var d = $.Deferred();
$.ajax({
url: "http://services.odata.org/V3/(S(3mnweai3qldmghnzfshavfok))/OData/OData.svc/Products",
dataType: "json"
}).done(function(response) {
d.resolve(response.value);
});
return d.promise();
}
是 accept promise 而不是 ajax 函数。所以我才是问题所在
我当时很傻,
设置 table 高度的位在没有高度的 div 中设置为 100%,这导致 table 主体以 0px 的高度呈现,改变了高度属性 自动修复它,因为数据一直都在那里。
谢谢你的建议!
我正在尝试在我的 MVC 项目中使用 jsGrid,因为客户希望进行内联编辑和过滤。 但是,我无法将我的 JSON 源加载到 table。 我加载 table 的 js 如下所示:
$("#jsGrid").jsGrid({
height: "50%",
width: "100%",
filtering: true,
inserting: true,
editing: true,
sorting: true,
paging: true,
autoload: true,
pageSize: 10,
pageButtonCount: 5,
deleteConfirm: "Do you really want to delete client?",
controller: {
loadData: function (filter) {
return $.ajax({
type: "GET",
url: "RICInstrumentCode/GetData",
data: filter,
dataType: "json"
});
},
insertItem: function (item) {
return $.ajax({
type: "CREATE",
url: "/api/RICInsrumentCodeTable",
data: item,
dataType: "json"
});
},
updateItem: function (item) {
return $.ajax({
type: "UPDATE",
url: "/api/RICInsrumentCodeTable/" + item.ID,
data: item,
dataType: "json"
});
},
deleteItem: $.noop
//deleteItem: function (item) {
// return $.ajax({
// type: "DELETE",
// url: "/api/data/" + item.ID,
// dataType: "json"
// });
//}
},
fields: [
{ name: "Code", type: "text", title: "RIC Instrument Code", width: 150 },
{ name: "Descr", type: "text", title:"RIC Instrument Code Description", width: 200 },
{ name: "RICInstrumentGroupId", type: "select", title: "RIC Instrument Group", items: countries, valueField: "Id", textField: "Name" },
{ name: "Active", type: "checkbox", title: "Is Active", sorting: true },
{ type: "control" }
]
});
});
我一直在研究 loadData。
和 JSON 从获取数据中 return 看起来像这样:
[{"Id":1,"Code":"test1","Descr":"first code test","RICInstrumentGroupId":2,"Active":true},{"Id":2,"Code":"APP","Descr":"Apples and bananas","RICInstrumentGroupId":4,"Active":true},{"Id":3,"Code":"1","Descr":"1","RICInstrumentGroupId":1,"Active":true},{"Id":4,"Code":"3","Descr":"3","RICInstrumentGroupId":3,"Active":false}]
到目前为止,我已经确认 ajax 正在触发,更改了我的数组标题以匹配调用的标题,并确保 return 有效 JSON,还有什么我可以做吗?
我一辈子都弄不明白为什么这行不通。 任何帮助将不胜感激。 提前致谢, 杰顿赖默
我不知道是否需要,但是当我查看演示示例(OData 服务)时。 网格 loadData 函数看起来与您的有点不同。
loadData: function() {
var d = $.Deferred();
$.ajax({
url: "http://services.odata.org/V3/(S(3mnweai3qldmghnzfshavfok))/OData/OData.svc/Products",
dataType: "json"
}).done(function(response) {
d.resolve(response.value);
});
return d.promise();
}
是 accept promise 而不是 ajax 函数。所以我才是问题所在
我当时很傻, 设置 table 高度的位在没有高度的 div 中设置为 100%,这导致 table 主体以 0px 的高度呈现,改变了高度属性 自动修复它,因为数据一直都在那里。
谢谢你的建议!