jquery - JqG​​rid 选择可能或可能不可见的特定行

标签 jquery jqgrid jqgrid-asp.net jqgrid-php

我有一个 jqGrid 并且有几页项目。我有一行的 ID,该行可能位于第一页,也可能隐藏在其他页面的某个位置。

给定行的 ID,如何以编程方式选择这样的行?我正在使用按钮的点击事件,如下

.on("click", function(){
     var myId = $(this).attr("id");
     $("#studentGrid").jqGrid.setSelection(myId, true);
});

当我单击按钮时,我会看到以下 Firebug 控制台。

类型错误:this.each 不是函数

有什么想法吗?

编辑
所以我选择只用一条记录重新填充网格。问题是我没有使用本地数据。我的数据类型是“json”。像这样

  $("#studentGrid").jqGrid({
                url: '<c:url value="/students/studentjsondata"/>',
                datatype: 'json',
                height: 'auto',
                colNames:['id','First Name', 'Last Name', 'Other Name' ,'Date Of Birth', 'Gender'], 
                colModel:[ 
                        //Bla Bla Bla
                ],
                rowNum:10,
                autowidth: true,
                pager: '#pager', 
                sortname: 'id', 
                viewrecords: true, 
                sortorder: "desc",
                caption:"Students",
                emptyrecords: "Empty Records",
                subGrid: true,
                /* <![CDATA[ */ 
                onSelectRow: function(id){ 
                    if((lastsel != 0)&&(id!==lastsel)){ 
                        $("#studentGrid").jqGrid('collapseSubGridRow', lastsel);                
                    } 
                    lastsel=id; 
                }/* ]]> */ ,
                subGridOptions: { 
                    "plusicon" : "ui-icon-triangle-1-e", 
                    "minusicon" : "ui-icon-triangle-1-s", 
                    "openicon" : "ui-icon-arrowreturn-1-e", 
                    "reloadOnExpand" : true, 
                    "selectOnExpand" : true  
                },
                subGridRowExpanded: function(subgrid_id, row_id) {
                    //Bla Bla Bla
                }
    });

我有想要重新填充网格的 json 字符串。如何使用这些新数据重新初始化网格。我将以下 json 字符串与相应的逻辑如下,但没有任何反应。

{'page':'1', 'records':'1', 'total':'1', 'rows':[{'id':'7385', 'cell': ['Max', 'Payne', '', 'September 16, 2012', 'Male']}]}


.on("click", function(){
  var myNewData = eval('(' + $(this).attr("griddata") + ')');
  $("#studentGrid").jqGrid('setGridParam', { datatype: 'local', data: myNewData}).trigger('reloadGrid');
 });    

最佳答案

您可以尝试在 $("#studentGrid") 网格的 loadComplete 内添加调用 setSelection 方法:

loadComplete: function () {
    $(this).jqGrid("setSelection", myId, true);
}

如果 id 等于 myId 的行不在当前页面上,则不会选择任何行。如果 id = myId 的行在当前页面上执行,则该行将被选择。是你想要的吗?

关于jquery - JqG​​rid 选择可能或可能不可见的特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12408427/

相关文章:

jquery - 将行/列标记为脏,以便可以使用 .getChangedCells ('dirty' 返回)

javascript - 如何在jQgrid中添加动态下拉值?

jqgrid - 更改 JqGrid 列的顺序

jquery - 如何设置jqGrid编辑表单的位置为窗口中心

javascript - 让元素更改选择表单值

jQuery : how to add a delay to an ajax request?

jquery - 是否可以删除 Jqgrid 的 header 部分

asp.net-mvc - 将命令列添加到 Asp.Net MVC 中的 jqGrid

javascript - JQGrid是免费的吗?

JQuery:如何编写选择器来查找以给定子字符串结尾的类的元素?