一列的jqgrid自定义编辑行为

时间:2011-08-11 19:49:58

标签: javascript jquery jqgrid

我想得到一个jqGrid,对于某个特定列,而不是将单元格转换为文本框,弹出一个需要填写的表单。关闭表单时,输入的数据将保存到单元格中。用户永远不能直接与单元交互,以免破坏数据。

查看图片,我有我想要与之交互的用户表。还有一张桌子坐在某处。当用户单击fav_books列时,会出现一个弹出窗口,由book table填充。用户选择一些书籍,点击确定,并将这些书籍的ID保存到单元格中。

jqGrid Popup functionality

现在,我只关心要显示一个弹出窗口。 custom_elementcustom_value没有帮助,因为他们将单元格转换为返回的DOM元素。我尝试使用这样的afterEditCell(仅用于概念证明)但无法保存单元格:

grid.jqGrid({
...
afterEditCell: function(rowid, name,val,iRow,iCol){
    if(name=='fav_books'){
        alert("see my table?");
        //which one saves (edits?) the cell?
        //grid.jqGrid('setRowData',rowid,{fav_books: 'hi'});
        //grid.jqGrid('setCell',rowid, 'fav_books','hi',null,null,false);
        //grid.jqGrid('saveCell',iRow,iCol);
    }
},
...
});

我可以在afterEditCell中完成编辑单元格进程,还是需要在afterEditCell之后为每个事件设置自定义函数?有没有办法做到这一点已经内置到jqGrid(我只是让自己的生活变得困难?)

1 个答案:

答案 0 :(得分:1)

在回答您的直接问题之前,我建议您从the old demo查看the questionThis oneone more answer也是同一主题。

因此,我的建议是考虑使用与multiple: trueeditoptions相关的edittype:'select' formatter:'select'选项。通过这种方式,您可以非常轻松地以非常接近您需要的方式实现您的要求。