我在我的代码如下:
{ name: 'ID', index: 'ID', width: 40 , formatter: 'showlink', search: false, formatoptions: { baseLinkUrl: '/Program/EditMicro'} },
当我点击PNUM,什么情况是,它关系到我的ActionResult控制器以下内容:
/Program/EditMicro
我想反而是捕捉通过对jQuery的选择是什么信息(选择什么号),我想做一些JSON,然后发送到以下的ActionResult
/Program/EditMicro
因此,要回顾一下,反正是有什么捕获的超级链接的价值点击是,然后我可以捕捉jQuery中。
先感谢您
在大多数情况下,这足以使用类似
formatter: "showlink",
formatoptions: {
baseLinkUrl: "/Program/",
showAction: "EditMicro",
idName: "myId"
}
在这种情况下的链接将等产生
<a href="/Program/EditMicro?myId=123">text from the cell</a>
如果您在行动有行的id,你可以得到你直接从数据库中需要的任何其他附加信息。
另外,您可以使用所描述的简单的一招了答案 。 您定义的CSS类
.myLink { text-decoration: underline; cursor: pointer; }
然后你可以使用自定义格式如下图所示
formatter: function (cellValue, options, rowObject) {
return "<span class='myLink'>" + cellValue + "</span>";
},
cellattr: function () {
return " title=\"Click here to go to EditMicro\"";
}
在你的方式将产生<span>
看起来像一个链接的用户。 你能赶上在使用电池的单击事件beforeSelectRow
或onCellSelect
回调。 例如
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 });
你也可以建立你自己的自定义格式也添加额外的信息,你将要显示这样做的工作,因为网格是正在建造的超级链接。
编辑:工作的例子中我禁用了默认的点击功能,并结合我自己时显示一个警告(作为一个例子来说明,你会编写自己的功能做你想要做的额外工作)。 http://jsfiddle.net/QEzhr/33/