2

我正在尝试将内联编辑与 jqgrid 一起使用,并且在我设置 position = last 时遇到了添加新行的问题。我的网格最初没有记录。我第一次单击“新行”时,它可以工作。我单击保存并将数据发布到 Web 服务。但是,当我再次单击“新行”时,它会将我之前添加的行置于编辑模式,因此我无法添加多行。我的代码如下。任何帮助将不胜感激:)

再看一遍之后,新行在保存后似乎没有被提交/接受到网格。如果我刷新网格然后添加一个新行,它会按预期工作。在我的保存网络服务被调用后,我似乎需要做一些事情......

var airGrid = $("#tblAir");
airGrid.jqGrid({
    datatype: function () {
        $.ajax({
            url: "MyTravelSrv.asmx/GetPlanAirfare",
            data: JSON.stringify({ TravReqstId: 1234 }),
            datatype: "json",
            type: "POST",
            contentType: "application/json; charset=utf-8",
            beforeSend: function () {
            },
            complete: function (jsondata, stat) {
                if (stat == "success") {
                    airGrid[0].addJSONData(JSON.parse(jsondata.responseText).d);
                }
            },
            error: function (e) {
                var msg = JSON.parse(e.responseText);
                alert(msg.Message);
            }
        });
    },
    colNames: ['ID', 'Date', 'Time', 'Preferred Airline', 'From', 'To'],
    colModel: [{ name: 'id', index: 'id', hidden: true },
               { name: 'departDate', index: 'departDate', editable: true },
               { name: 'departTime', index: 'departTime', editable: true },
               { name: 'prefAirline', index: 'prefAirline', editable: true },
               { name: 'from', index: 'from', editable: true },
               { name: 'to', index: 'to', editable: true}],
    pager: '#pager',
    height: 60,
    viewrecords: true,
    editurl: 'MyTravelSrv.asmx/UpdatePlanAirfare'
});


airGrid.jqGrid('navGrid', "#pager", { search: false, edit: false, add: false, del: false });
airGrid.jqGrid('inlineNav', '#pager', {
    addParams: { position: "last",
        addRowParams: {
            keys: true,
            oneditfunc: function (rowid) {
                //alert(rowid);
            }
        }
    }
});
4

0 回答 0