0

jqGridにDeleteを実装したいのですが、(例)2つのテーブルRequestとItemがあります

リクエストフィールドは、、RequestIdアイテム フィールドは、、 リクエストテーブルはpkで、アイテムテーブルにはpkがあり、アイテムテーブルにこのコードを記述しますWayBillNoCustomer
RequestIdItemNOQuantity
RequestIdRequestIdItemNO

var requestIdItem=0, itemIdItem=0;
var gridItem = $('#listItem');
gridItem.jqGrid({
    url: 'jQGridHandler.ashx',
    postData: { ActionPage: 'ClearanceItems', Action: 'Fill', requestId: rowid },
    ajaxGridOptions: { cache: false },
    datatype: 'json',
    height: 200,
    colNames: ['RequestId','ItemNo',Quantity],
    colModel: [
        { name: 'REQUEST_ID', width: 100, sortable: true,hidden:true },
        { name: 'ITEM_NO', width: 200, sortable: true }
        { name: 'Quntity', width: 100, sortable: true  }
    ],
    gridview: true,
    rowNum: 20,
    rowList: [20, 40, 60],
    pager: '#pagerItem',
    viewrecords: true,
    sortorder: 'ASC',
    rownumbers: true,
    //onSelectRow: function (id, state) {
    //    requestIdItem = gridItem.jqGrid('getCell', id, 'REQUEST_ID_ID');
    //    alert(requestIdItem);
    //    itemIdItem = gridItem.jqGrid('getCell', id, 'ITEM_NO');
    //    alert(itemIdItem);
    //}
    //,
    beforeSelectRow: function (itemid, ex) {
        requestIdItem = gridItem.jqGrid('getCell', itemid, 'REQUEST_ID_ID');
        itemIdItem = gridItem.jqGrid('getCell', itemid, 'ITEM_NO');

        return true;
    }

});
gridItem.jqGrid('navGrid', '#pagerItem', { add: false, edit: false, del: true }, {}, {}, {
    //alert(requestIdItem);
    url: "JQGridHandler.ashx?ActionPage=ClearanceItems&Action=Delete&REQUEST_ID=" +
         requestIdItem + "&ITEM_NO=" + itemIdItem
}, { multipleSearch: true, overlay: false, width: 460 });

アイテムテーブルにこのコードを記述します。アイテムテーブルにアイテムを削除するためのコードを記述します。パラメータ値を送信するためにこのコードを記述します。

url: "JQGridHandler.ashx?ActionPage=ClearanceItems&Action=Delete&REQUEST_ID=" +
     requestIdItem + "&ITEM_NO=" + itemIdItem

ただし、常に0の値をサーバーに送信してください。助けてください。皆さんありがとう

EDIT01:私は削除オプションを変更しますこれのために:私はこのページでhttp://stackoverflow.com/questions/2833254/jqgrid-delete-row-how-to-send-additional-post-dataユーザー@Olegがこのコードを書く のを見ます

gridItem.jqGrid('navGrid', '#pagerItem', { add: false, edit: false, del: true }, {}, {}, {
    serializeDelData: function (postdata) {
        alert(postdata.id);
        return ""; // the body MUST be empty in DELETE HTTP requests
    },
    onclickSubmit: function (rp_ge, postdata) {
        //  alert(postdata.id);
        var rowdata = $("#listItem").getRowData(postdata.id);
        alert(rowdata.REQUEST_ID_ID);
        rp_ge.url = 'JQGridHandler.ashx?ActionPage=ClearanceItems&Action=Delete&' +
                    $.param({ rr: rowdata.REQUEST_ID_ID });

        // 'subgrid.process.php/' + encodeURIComponent(postdata.id) +
        //    '?' + jQuery.param({ user_id: rowdata.user_id });
    }
    //alert(requestIdItem);
    // url: "JQGridHandler.ashx?ActionPage=ClearanceItems&Action=Delete&REQUEST_ID=" +
    //      requestIdItem + "&ITEM_NO=" + itemIdItem
}, { multipleSearch: true, overlay: false, width: 460 })

サーバーにデータを送信するときundefined

4

1 に答える 1

2

まず第一に、あなたはあなたのコードにタイプミスがあるように思えます。コード内のどこにでもREQUEST_ID_ID置き換える必要があります。REQUEST_ID

サーバーに追加情報を送信する必要がある場合は、

onclickSubmit: function (rp_ge, postdata) {
    var requestId = $(this).jqGrid("getCell", postdata.id, "REQUEST_ID");
    // alert("REQUEST_ID=" + requestId);
    return { rr: requestId });
}

この場合rr、削除リクエストの追加パラメータとしてパラメータと一緒に投稿されidます。

POSTリクエストの本文の一部ではなく、URLの一部として情報を送信する必要がある場合は、次の操作を実行できます。

onclickSubmit: function (rp_ge, postdata) {
    var requestId = $(this).jqGrid("getCell", postdata.id, "REQUEST_ID");
    // alert("REQUEST_ID=" + requestId);
    rp_ge.url = "JQGridHandler.ashx?" +
        $.param({
            ActionPage: "ClearanceItems",
            Action: "Delete",
            rr: requestId
        });
}
于 2012-10-26T12:14:24.503 に答える