首页 > 解决方案 > 如何在 jqgrid 中复制/克隆一行?

问题描述

我正在尝试在 jqgrid 中创建一个自定义按钮,该按钮允许我克隆选定的行/记录。我目前已使此警报正常工作,并且可以使用以下代码显示所选行的记录 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);

但这不起作用。

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

谢谢

标签: phpjqgrid

解决方案


您在 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);

推荐阅读