单击jqgrid行时将id设置为undefined

我需要获取所选行的id ,以突出显示它。 但是我认为这是不确定的。 可能是什么原因呢?

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

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

如何获取单击行的ID

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

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

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

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