JqGrid需要超链接 – 需要通过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\""; }
在您生成的方式中,它会像链接一样查找用户。 您可以使用
onCellSelect
或onCellSelect
回调捕获单元格上的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; } }
如果需要,您可以使用getCol
或getRowData
从单击的行中获取任何其他数据,并将信息附加到目标URL。
您可以将以下内容附加到jqGrid声明,以防止触发默认单击操作。
.click(function (event) { event.preventDefault(); })
然后,您可以通过自己的点击事件处理程序执行某些操作
$('a').click(function () { //ToDo: Extra actions before submitting to controller });
您还可以构建自己的自定义格式化程序,以便在构建网格时向要显示的超链接添加额外信息。
编辑:工作示例我在其中禁用了默认点击function并绑定我自己以显示警报(作为示例,显示您将编写自己的函数的位置以执行您想要执行的额外工作)。 http://jsfiddle.net/QEzhr/33/