我想得到一个jqGrid,对于某个特定列,而不是将单元格转换为文本框,弹出一个需要填写的表单。关闭表单时,输入的数据将保存到单元格中。用户永远不能直接与单元交互,以免破坏数据。
查看图片,我有我想要与之交互的用户表。还有一张桌子坐在某处。当用户单击fav_books列时,会出现一个弹出窗口,由book table填充。用户选择一些书籍,点击确定,并将这些书籍的ID保存到单元格中。
现在,我只关心要显示一个弹出窗口。 custom_element
和custom_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(我只是让自己的生活变得困难?)
答案 0 :(得分:1)
在回答您的直接问题之前,我建议您从the old demo查看the question。 This one和one more answer也是同一主题。
因此,我的建议是考虑使用与multiple: true
和editoptions
相关的edittype:'select'
formatter:'select'
选项。通过这种方式,您可以非常轻松地以非常接近您需要的方式实现您的要求。