排序时jqgrid新行消失

时间:2015-09-05 10:48:43

标签: asp.net jqgrid

我试图在jqgrid中使用客户端排序,这就是为什么我设置loadonce = true,在我保存新行之后,排序新添加的行消失了。

我该如何解决这个问题?

    jQuery("#tableContents").jqGrid({
        postData: { orderId: $('#hdnOrderId').val()},
        mtype: "POST",
        url: "label_edit_dhl.aspx/GetContentsPost",
        datatype: "json",
        ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
        serializeGridData: function (postData) {
            return JSON.stringify(postData);
        },
        jsonReader: { repeatitems: true, root: "d.rows", page: "d.page", total: "d.total", records: "d.records" },
        colNames: ['Master Content ID', 'Description Of Goods', 'No Of Items', 'Total Value for Customs', 'Weight', 'Track No'],
        colModel: [
                 {
                     name: 'master_content_id', index: 'master_content_id', width: 60, hidden: true, editable: true, editrules: { edithidden: false }
                 },
                 {
                     name: 'content', index: 'content', width: 60, sorttype: "string", editable: true, edittype: "text",
                     editrules: {
                         required: true
                     }
                 },
                 {
                     name: 'piecesInt', index: 'piecesInt', width: 90, align: "right", sorttype: "int", editable: true,
                     editrules: {
                         number: true,
                         required: true
                     }
                 },
                 {
                     name: 'value', index: 'value', width: 100, align: "right", sorttype: "float", editable: true,
                     editrules: {
                         required: true
                     }
                 },
                 {
                     name: 'weight', index: 'weight', width: 80, align: "right", sorttype: "float", editable: true,
                     editrules: {
                         required: true
                     }
                 },
                 {
                     name: 'track_no', index: 'track_no', width: 80, align: "right", sorttype: "string", editable: true
                 },
        ],
        sortorder: "desc",
        viewrecords: true,
        regional: 'tr',
        height: '100%',
        caption: "Manipulating Array Data",
        editurl: 'test.asmx/EditContent',
        loadonce: true,
        sortable: true,
        reloadAfterSubmit:true, 
        rowNum: 10000,
        onSelectRow: function (rowid) {
            var $self = $(this),
                // savedRows array is not empty if some row is in inline editing mode
                savedRows = $self.jqGrid("getGridParam", "savedRow");
            if (savedRows.length > 0) {
                $self.jqGrid("restoreRow", savedRows[0].id);
            }
            $self.jqGrid("editRow", rowid, {    
                keys: true,
                extraparam: { orderId: $('#hdnOrderId').val(), staffId : $('#hdnStaffId').val()},
                aftersavefunc: function (rowid, response) {

                    var data = eval('(' + response.responseText + ')');
                    var master_content_id = 0
                    if (data.hasOwnProperty('d'))
                        master_content_id = (data.d).master_content_id;
                    else
                        master_content_id = data.master_content_id;

                    $self.jqGrid('setCell', rowid, 'master_content_id', master_content_id);
                    $self.jqGrid('getLocalRow', rowid).master_content_id = master_content_id;   

                    UpdateOrderLabelInfo($('#hdnOrderId').val());
                    if (!GridHasEmptyRow($self)) {
                        $self.jqGrid('addRowData', undefined, {});
                    }

                },
                afterSubmit: function (response, postdata) {
                    alert(response);
                },
            });
        },
        loadComplete: function () {
            var $self = $(this)
            if (!GridHasEmptyRow($self)) {
                $self.jqGrid('addRowData', undefined, {});
            }
        }
    });

function editRow(id) {
    if (id && id !== lastSelection) {
        var grid = $("#tableContents");
        grid.jqGrid('restoreRow', lastSelection);
        grid.jqGrid('editRow', id,
            {
                keys: true
            });
        grid.jqGrid('restoreRow', lastSelection);
        lastSelection = id;
    }
}

0 个答案:

没有答案