在jqGrid中删除行时如何传递ID?

时间:2014-02-05 18:29:18

标签: javascript jquery jqgrid grid

我正在使用jqGrid并设置了一个动作处理程序,我希望用户能够删除一行。正在调用URL中指定的回调,但我无法弄清楚如何将行ID传递给URL处理程序,因此我知道要删除哪一行。

任何人都有解决方案吗?

<script>
$( document ).ready(function() {
    $("#list2").jqGrid({
        url:'datahandler',
        datatype: "json",
        colNames:['Name','Description', 'Data (Abbreviated)', 'Actions'],
        colModel:[
            {name:'name',index:'name', width:300, resizeable:true},
            {name:'description',index:'description', width:300, resizeable:true},
            {name:'data',index:'data', width:600, resizeable:true},
            {name : 'actions', sortable:false, index: 'actions', formatter:'actions',
                formatoptions: {
                    keys: true,
                    editbutton: false,
                    delOptions: { url: 'deleterow' }
                               }}
        ],
        rowNum:10,
        rowList:[10,20,30],
        pager: '#pager2',
        sortname: 'name',
        viewrecords: true,
        sortorder: "desc",
        caption:"PVSyst Data",
    });
    $("#list2").jqGrid('navGrid','#pager2',{edit:false,add:false,del:false});
});
</script>

1 个答案:

答案 0 :(得分:1)

目前尚不清楚您使用哪种格式来填充网格以及您使用哪种rowid。如果数据填写错误并且将使用值1,2,3而不是您希望在服务器端看到的rowid,则存在典型错误。无论如何,上述代码将使用HTTP POST请求到"deleterow"中指定的URL delOptions。数据采用delGridRow文档中描述的格式(请参阅here)。例如,如果已删除行的ID为"123",那么发布到网址"deleterow"的数据将为

oper=del&id=123

您只需在服务器端实现id参数的读取即可。如果您要将参数名称从id重命名为myId等任何其他文字,则可以使用jqGrid option prmNames: { id: "myId" }。之后,发布的数据将如下所示

oper=del&myId=123