如何在MVC中绑定HandsonTables

时间:2012-09-21 16:50:12

标签: jquery ajax asp.net-mvc handsontable

我正在使用MVC4开发Web应用程序。我在UI中有HandsOnTable。我试图用json绑定数据,但不能。而且不告诉显示错误。这是代码段

$.ajax({
            url: "/Customer/GetSpreadSheetGrid",
            type: "GET",
            dataType: "json",
            data: { customerId: customerID }
        })
            .success(function (result) {
    var vSpreadSheet = document.getElementById("SpreadSheetgrid");
        $("#SpreadSheetgrid").handsontable("loadData", result);
    })
    .fail(function (r, o) {
        alert("Failed : " + r.responseText);
    });
    }

这是我的控制器方法

public JsonResult GetSpreadSheetGrid(int customerId)
    {
IEnumerable<tblCustomerSpreadsheetInfo> resResult = null;
// Calling SP
resResult = _customer.GetCustomerCustomInfoByCustomerID(customerId);
return Json(resResult, JsonRequestBehavior.AllowGet);
    }

这段代码中的错误是什么。

2 个答案:

答案 0 :(得分:3)

<div id="dataTable" class="dataTable"></div>    
$("#dataTable").handsontable({
       rows: 6,
       cols: 8,
       contextMenu: true,
       colHeaders: true
    });
    var url = "/Home/GridData";
    $.get(url, null, function (data) {
    $("#dataTable").handsontable("loadData", data);
    strong text});

这是HomeController中的方法

public JsonResult GridData()
        {
            var jsonData = new[]
                         {
                             new[] {"1", "4", "Is this a good question?"},
                             new[] {"2", "5", "Yes."},
                             new[] {"3", "6", "It is!"}
                        };

            return Json(jsonData, JsonRequestBehavior.AllowGet);
        }

我使用此代码实现了绑定控制器方法。 但我真的很难获取数据并将其作为string [] []传递给控制器​​方法。

答案 1 :(得分:0)

修改你的jquery ajax如下(在成功和失败函数中保留一个调试器。使用IE和Visual Studio调试它。如果有的话,你可以看到错误。

$.ajax({
        url: "/Customer/GetSpreadSheetGrid",
        type: "GET",
        data: { customerId: customerID },
        contentType: "application/json; charset=utf-8",
        success: function (_results) {
             debugger;
            var vSpreadSheet = document.getElementById("SpreadSheetgrid");
            $("#SpreadSheetgrid").handsontable("loadData", result);
        },
        error: function (_results, status) {
            debugger;
        }
    });