单击jqgrid行时将id设置为undefined

时间:2015-10-09 08:04:24

标签: jquery jqgrid

我需要获取所选行的id,以突出显示它。但我得到id未定义。可能是什么原因?

我在click jqgrid附加了UserDetails个事件。单击UserDetails网格时会调用以下函数。

var selectUserGrid = function(event) {
   var grid = $('#UserDetails');
      grid.jqGrid( {
         onSelectRow : function(id) {
            var i = id;
         }
      });
   grid.setSelection(i,true);
}

如何点击行的ID

1 个答案:

答案 0 :(得分:1)

我认为你对click事件的处理顺序有疑问。

第一个问题是注册额外的click事件处理程序。你为什么这样做? jqGrid已经注册了一个click事件处理程序。 jqGrid处理它并调用beforeSelectRow回调,触发jqGridBeforeSelectRow事件然后选择行,调用onSelectRow回调,触发jqGridSelectRow事件,调用onCellSelect回调,触发触发器jqGridCellSelect。换句话说,jqGrid进程click事件并允许使用回调和事件来执行一些其他操作,同步与jqGrid的内部工作。

如果您注册第二个 click处理程序,则无法隔离您的 click处理程序将在之后 strong>选中网格行。

我建议您使用上述回调或事件。此外,您在发布的代码片段中使用setSelection。另一方面,如何填充网格并不清楚。只有在jqGrd中插入相应的行后,才能调用setSelection。我想你真正的代码是另一个。然而,您发布的代码无法正常工作。此外,代码在 i回调中定义了onSelectRow变量,但您尝试在回调的外部中使用它。如果i永远是undefined