通过在MVC中调用Controller/WebService来加载jsGrid

Jos*_*a I 7 jquery asp.net-mvc-4 jsgrid

我真的很难使用Controller服务加载jsGrid.我无法正确地做到这一点.

我甚至尝试了jsGrid站点演示中的示例代码,但是它也没有工作,它会在!this.data.length处抛出错误,或者网格根本不加载.

每次尝试使用下面的代码时,我都没有数据.

感谢是否有人可以提供帮助.

这是加载jsGrid的方式:

$(element).jsGrid({
   height: 300,
   width: "100%",
    filtering: true,
    sorting: true,
    paging: true,
    autoload: true,
    pageLoading: true,

    controller: {
        loadData: function (filter) {
            $.ajax({
                type: "GET",
                url: "../Common/GetData",
                data: filter,
                dataType: "JSON"
            });
        }
    },
    pageSize: 10,
    pageButtonCount: 5,
    pageIndex: 1,

    noDataContent: "No Record Found",
    loadIndication: true,
    loadIndicationDelay: 500,
    loadMessage: "Please, wait...",
    loadShading: true,

    fields: [
        { name: "Name", type: "textarea", width: 150 },
        { name: "Age", type: "number", width: 50 },
        { name: "Address", type: "text", width: 200 },
        { name: "Country", type: "select" },
         {
             name: "", type: "text", width: 50, sorting: false, filtering: false,
             itemTemplate: function (value) {
                 return '<div class="edit-container"><a class="edit-custom-field-link">Edit</a><div class="sort-icon-container"><div class="up-arrow-icon"></div><div class="down-arrow-icon"></div></div></div>';
             }
         }
        //{ name: "Married", type: "checkbox", title: "Is Married", sorting: false }
        //,{ type: "control" }
    ]
});
Run Code Online (Sandbox Code Playgroud)

irf*_*fan 7

你应该在加载数据时使用promises,

loadData: function(filter) {

  return $.ajax({
        type: "GET",
        url: "../Common/GetData",
        data: filter,
        dataType: "JSON"
    })

}
Run Code Online (Sandbox Code Playgroud)

return $.ajax({})是否会回报承诺.是的,谢谢!

  • 这实际上是否有效?我无法加载网格我只是让网格出现并说'找不到',即使我可以看到我的JSON被请求并发送回来,我在我的所有活动中都有控制台记录,但它们确实出现了..这样就是这样非常令人沮丧,因为我无法解决如何调试它.当我逐步完成底层的JQuery代码时,它对我来说没有任何意义.AAAARRRRRGGH! (4认同)

小智 6

我也有JSGrid问题。我正在使用以下代码段(如某些建议所示):

`

loadData:   function(filter) {
    console.log("LoadData called....")
    var d = $.Deferred();
    $.ajax({
      type: "GET",
      url: "/secure/msgitems",
      data: filter
    }).done(function(response) {
      console.log(  response);
      d.resolve(response);
      return;
  });
 return d.promise();
 },
},
Run Code Online (Sandbox Code Playgroud)

`

我可以看到结果返回,但是我的jsGrid一直在呕吐。事实证明服务器必须以以下格式返回数据:

{
data: [items], itemsCount: amountOfItems }

这是开发人员讨论此主题的地方:https : //github.com/tabalinas/jsgrid/issues/35

似乎可行... FWIW