【问题标题】:Parameter Delete in jqGridjqGrid中的参数删除
【发布时间】:2012-10-25 18:25:04
【问题描述】:

我想为 jqGrid 实现删除,我有(示例)2 个表请求和项目

请求字段为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 });

我为项目表编写此代码,现在我想为项目表中的删除项目编写代码我为发送参数值编写此代码

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

【问题讨论】:

    标签: jqgrid jqgrid-asp.net jqgrid-formatter jqgrid-inlinenav


    【解决方案1】:

    首先,在我看来,您的代码中有输入错误。您应该在代码中的任何位置将 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
            });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-11
      • 1970-01-01
      • 2013-07-21
      • 2011-07-24
      • 2012-01-14
      • 2013-08-22
      • 2012-08-01
      • 1970-01-01
      相关资源
      最近更新 更多