在ajax调用之后,未在网格中填充数据

时间:2019-04-12 05:41:27

标签: javascript c# jquery asp.net-mvc jsgrid

我正在尝试为我的应用程序使用js网格。我正在尝试在ajax请求之后填充网格,但是它似乎没有按预期工作。

我正在尝试将SQL Server作为后端,并且Web应用程序是asp.net MVC

这是我在html中的代码

var table;
        var result;
        var $j = jQuery.noConflict();
        $j(document).ready(function () {

            table = $j('#grid').jsGrid({
                height: "60%",
                width: "50%",
                inserting: true,
                editing: true,
                sorting: true,
                paging: true,
                autoload: true,
                pageSize: 10,
                controller: {
                    loadData: function (filter) {
                        var d = $j.Deferred();
                         $j.ajax({
                            type: "POST",
                            contentType: "application/json",
                            url: "@Url.Action("LoadData", "User")",
                            datatype: "json",
                            data: filter
                            @*success: function (data) {
                                result = data.data;
                                console.log("result", result);
                                d.resolve(result)
                            },
                            error: function (data) {
                                window.location.href = '@Url.Action("Error", "Audit")';
                            }*@
                        }).done(function (data) {
                            console.log("response", data);
                            console.log("data.data", data.data);
                            d.resolve(data)
                            });
                        return d.promise();

                    },
                    fields: [
                        { name: "LastName", type: "text"},
                        { name: "FirstName", type: "text"},
                        { name: "Email", type: "email"},
                        { name: "PhoneNumber", type: "number"},
                        { type: "control" }
                    ]
                }
            });
        });

在控制器中,我返回

''return Json(new { data }, JsonRequestBehavior.AllowGet);''

我希望json数据绑定到div中。但这不是吗?谢谢

1 个答案:

答案 0 :(得分:0)

好,所以我最近遇到了这个问题。

首先,将“高度”更改为px,自动或完全删除。它没有按照您认为的那样做。

接下来,由于您已进行分页,因此需要以以下格式返回数据:

{ 
  data: [{your list here}],
  itemsCount: {int}
}

它几乎没有在文档中,因为它是内联的,不是很明显。 (大胆的。)

  

loadData是一个返回数据数组或jQuery Promise的函数,该函数将使用数据数组进行解析(当pageLoading为true而不是对象结构 {data:[items],itemsCount:[total total count ]} )。

时接受过滤器参数,包括当前过滤器选项和分页参数

http://js-grid.com/docs/#controller