无法从jqgrid中删除行

时间:2016-05-12 07:24:49

标签: javascript jquery jqgrid

情况:我正在开发一个spring mvc webapp,因为我试图为jqgrid中的每一行提供一个删除按钮,当用户点击删除按钮时,执行发送的javascript函数一个请求控制器从服务器的DB中删除该行,然后从jqgrid中删除该行,为实现这一点我的html如下:

<table id="grid"></table>
<div id="pager"></div>

和javascript如下:

var mydata = [{
    name: "Toronto",
    country: "Canada",
    continent: "North America"
}, {
    name: "New York City",
    country: "USA",
    continent: "North America"
}, {
    name: "Silicon Valley",
    country: "USA",
    continent: "North America"
}, {
    name: "Paris",
    country: "France",
    continent: "Europe"
}]

$("#grid").jqGrid({
    data: mydata,
    datatype: "local",
    colNames: ["Name", "Country", "Continent","action"],
    colModel: [{
        name: 'name',
        index: 'name',
        editable: true,
    }, {
        name: 'country',
        index: 'country',
        editable: true,
    }, {
        name: 'continent',
        index: 'continent',
        editable: true,
    },{
        name: 'conti',
        index: 'cont',
        formatter : hello,
        editable: true, 

    }],
    pager: '#pager'
});

function hello(cellvalue, options, rowObject)
{
return '<a href="javascript:deleteRow(\'' + rowObject.name     
+'/');">delete</a>';
//code to remove this row from jqgrid
}

问题:现在按下删除按钮的行将从服务器的数据库中删除但是我无法弄清楚如何从jqgrid中删除行,我尝试使用{{1}但是它需要delRowData并且我只有rowid,任何人都可以告诉我如何使用rowobject从jqgrid中删除相关行?

2 个答案:

答案 0 :(得分:0)

通常,建议在输入数据中包含id属性。 id将用于将id属性的值分配给网格的行(<tr>元素)。

了解自定义格式化程序的options参数包含对您有帮助的属性非常重要:options.rowIdoptions.colModel。您可以将options.rowId作为附加参数转发到deleteRow功能。

答案 1 :(得分:0)

我找到了一个解决方案,我们可以从rowId对象中检索options,如下所示:

function hello(cellvalue, options, rowObject) 
{
     return '<a href="javascript:clickFunction(\'' + options.rowId + '\');">' + "DELETE" + '</a>'; 
} 

然后当用户点击超链接&#34;删除&#34;执行clickFunction()delRowData()接收rowId并删除相关行。

function clickFunction(rowid)
{
    alert(rowid);
    $('#grid').delRowData(rowid);
}

文档: http://www.trirand.com/jqgridwiki/doku.php?id=wiki:custom_formatter