【问题标题】:Selecting a newly added row in jqGrid在 jqGrid 中选择新添加的行
【发布时间】:2020-01-22 17:56:41
【问题描述】:

我需要能够选择新添加的行(它总是最后添加的),但在网格重新加载后似乎不可能。

是否有可靠的方法在重新加载网格后选择最后一行?这是我现在拥有的代码,网格重新加载很好,但最后一个 id 未定义。触发器重新加载没有实现承诺(然后),所以我无法利用它。有什么想法吗?

 $('#mygridid').trigger('reloadGrid');    
 var lastRowId = $('#mygridid').find(">tbody>tr.jqgrow:last").attr('id');

我们使用的是免费版本 4.4.4。

【问题讨论】:

    标签: javascript jquery jqgrid


    【解决方案1】:

    您可以尝试使用该行附加您发布的代码

    $('#mygridid').jqGrid("setSelection", lastRowId, false, null);
    

    例如,如果您重新加载本地网格,它应该可以工作。如果您从服务器加载数据,那么您的代码应该更安全,例如:

    var mySelectionLastRow = function () {
        this.p.selrow = null;
        this.p.selarrrow = [];
        if (this.rows.length > 1) {
            var lastRowId = this.rows[this.rows.length - 1].id;
            $(this).jqGrid("setSelection", lastRowId, false, null);
        }
        $(this).unbind(".myLastRowSelection", mySelectionLastRow);
    };
    $("#mygridid").bind("jqGridGridComplete.myLastRowSelection", mySelectionLastRow);
    // ...
    $("#mygridid").trigger("reloadGrid");
    

    以上代码在触发reloadGrid之前将jqGridGridComplete事件绑定到函数mySelectionLastRow。函数mySelectionLastRow 将在重新加载完成后选择最后一行,然后自行解除绑定。因此,下一次重新加载网格不会选择最后一行。如果您确实需要在每次重新加载网格时都强制选择,那么您可以使用unbind 调用删除 make 行,并在创建网格之前进行上述绑定。因此,即使在第一次加载网格时,每次都会调用mySelectionLastRow。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多