JQGrid以编程方式选择网格行

标签 jqgrid navigation client-side

我有一个带有loadonce:true(所以它是所有客户端)和启用分页(有20页)的JQGrid。

我想指定一行(以编程方式,无需用户输入),然后让我的网格导航到相应的页面以选择指定的行。

当前的JQGrid有可能吗?

我已经研究过搜索和过滤器,但是只是用新的行重新加载了网格-我需要我的网格才能导航到正确的页面-保留其数据和结构。

我正在优化网格结构,因此可能需要进行任何更改(例如,客户端到服务器端)。

最佳答案

由于您使用loadonce:true,因此您需要在服务器上准备数据。在服务器端,您可以决定必须选择哪一行。在服务器端,您还可以轻松计算所选行将在哪一页上。所选行和所选页面的ID例如可以作为userdata的一部分包括在内。因此,从服务器发送的数据可能如下所示:

{
    "total": 5,
    "page": 1,
    "records": 107,
    "rows": [
        ...
    ],
    "userdata": {
        "page": 3,
        "selId": 24 
    }
}

loadComplete内部,您可以执行以下操作

loadComplete: function(data) {
    if (jQuery("#list").getGridParam('datatype') === "json") {
        // data.userdata is the same as jQuery("#list").getGridParam('userData');
        var userdata = jQuery("#list").getGridParam('userData');
        var curPage = jQuery("#list").getGridParam('page'); // is always 1
        if (curPage !== userdata.page) {
            setTimeout(function(){
                jQuery("#list").setGridParam(
                    { page: userdata.page }).trigger("reloadGrid");
                jQuery("#list").setSelection (userdata.selId, true);
            },100);
        }
        else {
            jQuery("#list").setSelection (userdata.selId, true);
        }
    }
}

您可以在http://www.ok-soft-gmbh.com/jqGrid/DataToSelect.htmhttp://www.ok-soft-gmbh.com/jqGrid/DataToMultiSelect.htm上看到一个工作示例。

更新:Free jqGrid支持4.10.0版以上的multiPageSelection:true选项。该选项允许非常容易地设置网格中多个行的选择(并且工作非常迅速,因为它在创建网格主体时直接设置选择状态)。参见the answerthe demothe readme to 4.10.0

关于JQGrid以编程方式选择网格行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3564898/

相关文章:

asp.net - jqGrid 行更新

javascript - 我可以设置总页数并在单击下一页时使用 jq 网格中的 ajax 加载下一组记录吗?

javascript - 寻找基于网络的客户端表单编辑器

javascript - 如何将脚本添加到 jqgrid 中行上的自定义按钮?

asp.net-mvc-2 - 如何在MVC.NET 2中使用JqGrid TreeGrid?

html - 导航栏背景图片响应度,右侧有另一个容器

javascript - 客户端 JS session 库

node.js - 如何从客户端访问 cookie-session?

navigation - 如何定期更新ROS costmap位置?

css - 使用其他框架 Bootstrap 导航栏