我如何在 jqgrid 中 copy/clone 一行?

How do I copy/clone a row in jqgrid?

我正在尝试在 jqgrid 中创建一个自定义按钮,它允许我克隆选定的 row/record。我目前已使此警报正常工作,并且能够使用以下代码显示所选行的记录 ID:

$buttonoptions = array("#pager",
    array("caption"=>"Clone", "title"=>"Clone selected Record", "onClickButton"=>"js: function(){
        var selr = jQuery('#grid').jqGrid('getGridParam','selrow');
        if(selr) alert(selr);
        else alert('Please select the row you want to Clone first!');
        }"
    )
);
$grid->callGridMethod("#grid", "navButtonAdd", $buttonoptions);

我正在考虑使用 'getRowData' 和 'addRowData' 通过以下代码实现此目的:

var rowData = jQuery('#grid').jqGrid('getRowData',selr);
jQuery('#grid').jqGrid('addRowData',0,rowData,'last');

像这样使用

$buttonoptions = array("#pager",
    array("caption"=>"Clone", "title"=>"Clone selected Record", "onClickButton"=>"js: function(){
        var selr = jQuery('#grid').jqGrid('getGridParam','selrow');
        if(selr)
        var rowData = jQuery('#grid').jqGrid('getRowData',selr);
        jQuery('#grid').jqGrid('addRowData',0,rowData,'last');
        else alert('Please select the row you want to Clone first!');
        }"
    )
);
$grid->callGridMethod("#grid", "navButtonAdd", $buttonoptions);

但这不起作用。

我希望能得到一些帮助来解决这个问题,因为我已经尝试了一段时间但没有成功,而且我找不到任何关于如何实现这个问题的代码示例。

谢谢

您在 if else 子句中有一个错误 - 您错过了 { } 括号。应该是

$buttonoptions = array("#pager",
    array("caption"=>"Clone", "title"=>"Clone selected Record", "onClickButton"=>"js: function(){
        var selr = jQuery('#grid').jqGrid('getGridParam','selrow');
        if(selr) { 
            var rowData = jQuery('#grid').jqGrid('getRowData',selr);
            jQuery('#grid').jqGrid('addRowData',0,rowData,'last');
        } else {
            alert('Please select the row you want to Clone first!');
        }
      }"
    )
);
$grid->callGridMethod("#grid", "navButtonAdd", $buttonoptions);