JqG​​rid需要超链接 – 需要通过Jquery捕获值

我的代码中有以下内容:

{ name: 'ID', index: 'ID', width: 40 , formatter: 'showlink', search: false, formatoptions: { baseLinkUrl: '/Program/EditMicro'} }, 

当我点击PNum时,会发生什么事情,它会转到以下actionresult我的控制器:

  /Program/EditMicro 

我想要的是通过Jquery在所选内容(选择了什么ID)上捕获该信息,因为我想在发送到以下ActionResult之前做一些json

  /Program/EditMicro 

所以,回顾一下,无论如何都要捕获超链接点击的价值,然后我可以在Jquery中捕获它。

先感谢您

在大多数情况下,使用类似的东西就足够了

 formatter: "showlink", formatoptions: { baseLinkUrl: "/Program/", showAction: "EditMicro", idName: "myId" } 

如果链接将生成像

 text from the cell 

如果您在操作中拥有该行的ID,则可以直接从数据库中获取所需的任何其他信息。

或者,您可以使用答案中描述的简单技巧。 您定义CSS类

 .myLink { text-decoration: underline; cursor: pointer; } 

然后你可以使用下面的自定义格式化程序

 formatter: function (cellValue, options, rowObject) { return "" + cellValue + ""; }, cellattr: function () { return " title=\"Click here to go to EditMicro\""; } 

在您生成的方式中,它会像链接一样查找用户。 您可以使用onCellSelectonCellSelect回调捕获单元格上的click事件。 例如

 beforeSelectRow: function (rowid, e) { var $td = $(e.target).closest("td"), iCol = $.jgrid.getCellIndex($td[0]); if (this.p.colModel[iCol].name === 'note') { window.location = "/Program/EditMicro/" + encodeURIComponent(rowid); return false; } } 

如果需要,您可以使用getColgetRowData从单击的行中获取任何其他数据,并将信息附加到目标URL。

您可以将以下内容附加到jqGrid声明,以防止触发默认单击操作。

 .click(function (event) { event.preventDefault(); }) 

然后,您可以通过自己的点击事件处理程序执行某些操作

 $('a').click(function () { //ToDo: Extra actions before submitting to controller }); 

您还可以构建自己的自定义格式化程序,以便在构建网格时向要显示的超链接添加额外信息。

编辑:工作示例我在其中禁用了默认点击function并绑定我自己以显示警报(作为示例,显示您将编写自己的函数的位置以执行您想要执行的额外工作)。 http://jsfiddle.net/QEzhr/33/