2015-10-09 46 views
0

我需要获取所选行的id以突出显示它。但我没有定义id。这可能是什么原因呢?点击jqgrid行时获取id为undefined

我已附加click事件与UserDetails jqgrid。点击UserDetails网格时将调用以下函数。

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

如何获得点击的行的ID

+1

我相信你之前有同样的问题吗? – guradio

+0

@皮卡这一个是不同的。 –

+0

为什么不把'grid.setSelection(i,true);''onSelectRow:'处理程序中的代码? – vijayP

回答

1

我想你对click事件的处理顺序有问题。

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

如果您注册第二click处理程序,那么你可以不隔离那个click处理器将网格的行被选中后调用

我建议您使用上述回调或事件。此外,您在发布的代码片段中使用setSelection。另一方面还不清楚你如何填补电网。只有在jqGrd中插入相应的行后,才能拨打setSelection。我想你的真实代码是另一个。尽管如此,您发布的代码无法正常工作。此外,代码定义i变量里面的onSelectRow回调,但你试图在回调之外使用它。在这种情况下,i将永远为undefined