Jquery jqGrid-删除问题

Jquery jqGrid-删除问题,jquery,jqgrid,Jquery,Jqgrid,我有简单的JqGrid $j("#gridTemp").jqGrid({ jsonReader: { id: 'AppID' + 'Name', repeatitems: false }, url: GetData, datatype: "json", colNames: ['Col1', 'Col2'], colModel: [ { name: 'Col1'},

我有简单的JqGrid

  $j("#gridTemp").jqGrid({
    jsonReader: {
        id: 'AppID' + 'Name',
        repeatitems: false
    },
    url: GetData,
    datatype: "json",
    colNames: ['Col1', 'Col2'],
    colModel: [
                { name: 'Col1'},
              { name: 'Col2'}
            ],
    rowNum: 10,
    autowidth: true,
    rowList: [10, 20, 30],
    pager: '#pager1',
    }).navGrid('#pager1', { edit: false, add: false, del: true, search: false }, {}, {}, { url: DeleteAddress });
}

并尝试获取删除按钮单击事件

$j('#del_gridTemp').click(function () { 
        alert($j('#gridTemp').jqGrid('getGridParam', 'selarrrow')); 
    });
由于某种原因,它不起作用。谢谢你的帮助

参见jqGrid方法。您可以像这样删除行:

$('#the_button').click(function () {
    //get selected Ids returns like: ["1", "2", "3"]
    var selectedIds = $('#gridTemp').jqGrid('getGridParam', 'selarrrow');

    //iterate over each id and delete the corresponding row
    $.each(selectedIds, function (index) {
        $('#gridTemp').jqGrid('delRowData', selectedIds[index]);
    });
});

我不知道是什么错误,但我希望能帮助你

首先使用selarrrow参数,所以我想您希望使用multiselect grid。所以我在代码中添加了multiselect:true参数。您可以使用$'del_gridTemp'创建原始代码。单击函数{…};在我的演示中工作。我只修改了警报的文本。例如,如果您选择包含test4、test2、test12的行,您将首先看到如下消息

在确认对话框中单击“确定”按钮,然后单击“删除”按钮后,您将看到下一条消息

从我建议您使用的回调函数。编写代码看起来像

$("#gridTemp").jqGrid('navGrid', '#pager', {refreshstate: 'current', add: false, edit: false, del: true},
    {},
    {},
    { url: '/DeleteAddress',
        onclickSubmit: function (options, postdata) {
            alert('in onclickSubmit: postdata=' + postdata);
            return { myData: 'Hello'};
        }});
在onclickSubmit方法中,我还展示了如何附加信息,这些信息将与其他信息一起发送

我在URL“/DeleteAddress”下没有任何服务器代码,但在Firebug的Fiddler之类的任何工具中,您都可以找到将发布的数据格式。它是x-www-form-urlencoded格式的数据:

myData=Hello&oper=del&id=4%2C2%2C12
myData=Hello
oper=del
id=4,2,12
以解码形式显示:

myData=Hello&oper=del&id=4%2C2%2C12
myData=Hello
oper=del
id=4,2,12

我认为它应该接近您需要的内容。

您想删除什么?吵架?专栏?网格?您希望在选定ID列表发送到发布到URL DeleteAddress的服务器之前收到通知,还是希望在服务器删除项目并且jqGrid收到服务器确认后执行相同的操作?$j'del_gridTemp'中的当前代码。单击句柄没有意义。所以,如果你描述了你真正想要的,我可以向你推荐如何实现它。我想把所有选择的ID发送到后端。在此之前,请尝试显示所选ID。如前所述,当我单击JqGrid中的小垃圾箱图标时,它不会调用$j'del_gridTemp'。单击函数。如果您回答我,请在注释中使用@Oleg,请参阅以获取更多信息。如果你回答任何其他评论,你应该遵循同样的规则。对于您的问题:您在代码中犯了一些简单的错误。我将向您发布一个演示,其中使用了相同的代码,您将把它与您的版本进行比较,以纠正错误。@Oleg我试图找到那个简单的错误。.无论如何,感谢您的帮助。嗯,问题是$'the_button'。在我的情况下,当我点击按钮时,它不会触发事件。@Yass你能给我们更多的解释吗?如果没有这些或更多的代码,很难判断。这很简单,当您单击JqGrid中的小垃圾箱图标时,它必须调用$'del_GridID.click事件right?。在我的情况下,这不是启动事件。在我的问题中,我已经给出了完整的代码。非常感谢。但我仍然无法在我的代码中找出问题所在。@Yass:不客气!我完全复制了你的代码,它工作正常。此外,我不建议您使用$'del_gridTemp'。直接单击。onclickSubmit的使用更好。仅当用户不仅单击“删除”按钮,而且确认删除时,才会调用它。您还可以使用创建与Delete相同的按钮,并在onClickButton回调中拥有完全控制权。