无法使JQGrid loadComplete事件触发

无法使JQGrid loadComplete事件触发,jqgrid,jquery,Jqgrid,Jquery,我试图模拟加载网格后单击第一个单元格。我已经知道如何实现这一点,但由于某些原因,我无法启动loadComplete事件。我添加了一个简单的函数,其中包含一个警报来尝试它,但是即使页面加载没有问题,我也没有收到警报,调试显示该函数从未被调用 gridComplete也不工作 我使用的是jgGrid 3.8.2 知道我做错了什么吗?我已将我的代码张贴在下面: $(document).ready(function () { $("#grid").jqGrid(

我试图模拟加载网格后单击第一个单元格。我已经知道如何实现这一点,但由于某些原因,我无法启动loadComplete事件。我添加了一个简单的函数,其中包含一个警报来尝试它,但是即使页面加载没有问题,我也没有收到警报,调试显示该函数从未被调用

gridComplete也不工作

我使用的是jgGrid 3.8.2

知道我做错了什么吗?我已将我的代码张贴在下面:

    $(document).ready(function () {
        $("#grid").jqGrid(
            {
                datatype: function () {
                    $.ajax(
                    {
                        type: "POST",
                        url: "Default.aspx/GetListOfPersons",
                        data: "{}",
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        success: function (jsondata, stat) {
                            if (stat == "success")
                                jQuery("#grid")[0].addJSONData(JSON.parse(jsondata.d));
                            else
                                alert("error");
                        }
                    });
                },
                jsonReader:
                {
                    root: "rows",
                    page: "page",
                    total: "total",
                    records: "records",
                    repeatitems: false,
                    id: "Id"
                },
                colModel: //Columns
                [
                    { name: 'FirstName', index: 'FirstName', width: 200, align: 'Left', label: 'First Name', editable: true },
                    { name: 'LastName', index: 'LastName', width: 300, align: 'Left', label: 'Last Name', editable: true },
                    { name: 'Age', index: 'Age', width: 50, align: 'Right', label: 'Age', editable: true }
                ],
                caption: "Personas",
                cellEdit: true,
                cellsubmit: 'clientArray',
                pager: "#pager",
                loadComplete: function () { alert("load complete"); }
            }
            ).navGrid('#pager', { edit: false, add: false, del: false, search: false }).navButtonAdd('#pager',
            {
                caption: "Save",
                onClickButton: function () {
                    var ret = $("#grid").getChangedCells('dirty');
                    var ret2 = JSON.stringify(ret);
                    $.ajax(
                    {
                        type: "post",
                        url: "Default.aspx/GetChangesBack",
                        data: '{"o":' + ret2 + '}',
                        contentType: "application/json; charset=utf-8",
                        dataType: "json"
                    }
                    );
                },
                position: "last"
            }
            );
    }
    );
因为您自己正在调用$.ajax,所以我认为loadComplete不应该启动

不过,gridComplete应该可以工作。

因为您自己正在调用$.ajax,所以我认为loadComplete不应该启动

不过,gridComplete应该可以工作。

您可以发布Default.aspx/GetListOfPersons的代码吗?在我看来,您两次进行JSON序列化。我认为这是因为您在$.ajax的成功处理程序中使用了JSON.parsejsondata.d。如果您发布代码,我将尝试对其进行更改,这样您就可以使用jqGrid,而无需将数据类型作为函数。您可以发布Default.aspx/GetListOfPersons的代码吗?在我看来,您两次进行JSON序列化。我认为这是因为您在$.ajax的成功处理程序中使用了JSON.parsejsondata.d。如果您发布代码,我将尝试对其进行更改,这样您就可以使用jqGrid,而无需将数据类型作为函数。