如何让新行成为焦点?

How do I make the new row take the focus?

我需要知道如何在网格的末尾添加一个新行,获得焦点,即成为“选定”的那个?我没有使用分页和 $grid["scroll"] = true。 添加行后(在 mysql 中),我更新网格:

jQuery('#lstGrid').trigger('reloadGrid',[{jqgrid_page:1}]);

但是下面的代码不起作用。

setTimeout(function(){
$("#lstGrid").jqGrid('setSelection', new_row_id );
}, 500);

感谢您的帮助!

据我对需求的了解,我认为默认情况下这种构想是行不通的。让我解释一下:

您在网格中添加一行,然后单击按钮将其保存在 mysql 数据库中,然后重新加载网格。此操作意味着添加了该行并且您获得了数据的新部分,但是以不知道新添加的行在哪里的方式排序。

如果你真的想使用这个概念,你应该做适当的排序,这会将新添加的行放在第一位,然后进行选择。

顺便说一下,在您的代码中有一个错误:参数 jqgrid_page:1 没有意义,因为它无效。正确的是页面即:

jQuery('#lstGrid').trigger('reloadGrid',[{page:1}]);

但这对你没有帮助。

感谢托尼的帮助。我写在这里是因为我有可能更清楚地发布代码。我还不能给你的答案打分,因为我还没有足够的分数。我已经修改了代码,有了这个我就得到了我需要的东西。

jQuery('#lstCertificacion').trigger('reloadGrid', [{page:5}]); 

setTimeout(function(){
 
    var ids = $("#lstCertificacion").jqGrid('getDataIDs');
       
    for (var z=0;z<ids.length;z++) {
        var row_id=ids[z];
        $("#lstCertificacion").jqGrid('setSelection', row_id );
    }
    
}, 200);