【问题标题】:Cant get JQGrid loadComplete event to fire无法触发 JQGrid loadComplete 事件
【发布时间】:2011-05-26 14:42:50
【问题描述】:

我正在尝试在加载网格后模拟单击第一个单元格。我已经知道如何做到这一点,但由于某种原因,我无法触发“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"
            }
            );
    }
    );

【问题讨论】:

  • 能把Default.aspx/GetListOfPersons的代码发一下吗?在我看来,您将 JSON 序列化两次。我想这是因为您在$.ajaxsuccess 处理程序中使用了JSON.parse(jsondata.d)。如果您发布代码,我将尝试对其进行更改,以便您可以使用 jqGrid 而无需将 datatype 作为函数。

标签: jqgrid jquery


【解决方案1】:

因为你自己打电话给$.ajax,我不认为loadComplete应该开火。

gridComplete 应该可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-25
    • 1970-01-01
    • 2012-07-04
    • 1970-01-01
    • 2020-08-10
    • 1970-01-01
    相关资源
    最近更新 更多