我正在使用MVC和Handsontable来创建类似excel的显示,但我无法让控制器以Handsontable可以使用的格式返回json。
MVC控制器返回JsonResult
:
return Json(results, JsonRequestBehavior.AllowGet);
这是返回数据的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中,我可以看到返回的数据:
[{ 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 { StockCatalogueItemId=235031, SKU="03121017593518"}, Object { StockCatalogueItemId=235032, SKU="03121018032318"} ...etc
所以当前的游戏状态是一个控制台错误,我似乎无法超越这个:
TypeError: rootElement is null
任何想法?
答案 0 :(得分:0)
尝试使用ajax回调中的初始化代码,看看是否有效
$(document).ready(function(){
......
function test(){
$("ul").html("<li>blablabla</li>...");
alert( $("ul").html()); //alert 1 work like a charm it show the exact content
}
test();
alert( $("ul").html()); //alert 2 show that ul is empty :(
.....
}