我想为jqGrid实现删除,我有(示例)2表Request和Item
请求字段为RequestId
,WayBillNo
,Customer
项目字段为RequestId
,ItemNO
,Quantity
请求表RequestId
是pk,项目表pk是RequestId
,ItemNO
我为项目表编写此代码
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 });
我为项目表编写此代码,现在我想在Item表中为删除项目编写代码我为发送参数值编写此代码
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
答案 0 :(得分: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
参数一起发布。
如果您确实需要将信息作为URL的一部分而不是POST请求正文的一部分发送,您可以执行以下操作
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
});
}