Return Handsontable 兼容格式的 MVC Json
Return MVC Json in Handsontable compatible format
我正在使用 MVC 和 Handsontable 创建类似 excel 的显示,但我无法将控制器设置为 return json Handsontable 可以使用的格式。
MVC 控制器 return 是 JsonResult
:
return Json(results, JsonRequestBehavior.AllowGet);
这是return数据的js函数:
function GetCategoryAttributeList() {
var categoryattributelist = "";
$.ajax({
async: true,
type: "POST",
url: "[myurl]/PopulateHOT",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
categoryattributelist = msg;
}
return categoryattributelist;
});
在 Firebug 中,我可以看到 returned 数据:
[{ StockCatalogueItemId=235031, SKU="03121017593518"}, { StockCatalogueItemId=235032, SKU="03121018032318"} ...etc
我调用函数并将结果赋给一个变量:
var categoryattributelist = GetCategoryAttributeList();
然后在初始化代码中使用结果:
var hotElement = document.getElementById('#example');
var hot = new Handsontable(hotElement, {
data: categoryattributelist
});
此时,数据现在看起来略有不同(注意在每个元素之前添加了 'Object'):
[Object { StockCatalogueItemId=235031, SKU="03121017593518"}, Object { StockCatalogueItemId=235032, SKU="03121018032318"} ...etc
所以当前的游戏状态是一个控制台错误,我似乎无法超越这个:
TypeError: rootElement is null
有什么想法吗?
尝试在 ajax 回调中使用初始化代码,看看是否有效
function GetCategoryAttributeList() {
$.ajax({
async: true,
type: "POST",
url: "[myurl]/PopulateHOT",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
//handle returned data from service
var hotElement = $('#example');
if(hotElement){
var hot = new Handsontable(hotElement, { data: data });
}
}
});
我正在使用 MVC 和 Handsontable 创建类似 excel 的显示,但我无法将控制器设置为 return json Handsontable 可以使用的格式。
MVC 控制器 return 是 JsonResult
:
return Json(results, JsonRequestBehavior.AllowGet);
这是return数据的js函数:
function GetCategoryAttributeList() {
var categoryattributelist = "";
$.ajax({
async: true,
type: "POST",
url: "[myurl]/PopulateHOT",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
categoryattributelist = msg;
}
return categoryattributelist;
});
在 Firebug 中,我可以看到 returned 数据:
[{ StockCatalogueItemId=235031, SKU="03121017593518"}, { StockCatalogueItemId=235032, SKU="03121018032318"} ...etc
我调用函数并将结果赋给一个变量:
var categoryattributelist = GetCategoryAttributeList();
然后在初始化代码中使用结果:
var hotElement = document.getElementById('#example');
var hot = new Handsontable(hotElement, {
data: categoryattributelist
});
此时,数据现在看起来略有不同(注意在每个元素之前添加了 'Object'):
[Object { StockCatalogueItemId=235031, SKU="03121017593518"}, Object { StockCatalogueItemId=235032, SKU="03121018032318"} ...etc
所以当前的游戏状态是一个控制台错误,我似乎无法超越这个:
TypeError: rootElement is null
有什么想法吗?
尝试在 ajax 回调中使用初始化代码,看看是否有效
function GetCategoryAttributeList() {
$.ajax({
async: true,
type: "POST",
url: "[myurl]/PopulateHOT",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
//handle returned data from service
var hotElement = $('#example');
if(hotElement){
var hot = new Handsontable(hotElement, { data: data });
}
}
});