这是ColModel:
{name: "FirstName", index: "FirstName", width: 100, sortable: true, editable:true, formatter: GetRow}
function GetRow(cellvalue, options, rowObject) {
return "<a href='#' class='GetLink'>" + cellvalue + "</a>";
}
$('.GetLink').click(function (rowid) {
var row = $('#grid').jqGrid('getGridParam', 'selrow');
$('#grid').jqGrid('editGridRow', row, { recreateForm: true, closeAfterEdit: true, closeOnEscape: true, reloadAfterSubmit: false });
});
您当前的代码有一些缺点。我建议您使用带有选项formatoptions: { editformbutton: true }
的formatter: "actions"
而不是自定义格式化程序在网格的每一行中创建编辑/删除按钮(请参阅旧文档,其中描述了格式化程序的选项,例如delbutton: false
,它删除了删除按钮(。旧答案更详细地描述了该方法,并提供了演示,演示了formatter: "actions"
的用法。
如果您更喜欢使用自定义格式化程序,则可以使用 <span>
而不是 <a>
:
return "<span class='GetLink'>" + cellvalue + "</span>";
哪里
.GetLink { text-decoration: underline; cursor: pointer; }
而不是用法$('.GetLink').click
,为每个hiperlink注册单独的点击处理程序,我建议您在网格上使用一个点击处理程序。 jqGrid 已经注册了这样的点击处理程序,并允许使用beforeSelectRow
回调的自定义操作。它节省了Web浏览器的内存,并允许进行一次绑定,而不是在每次重新加载网格后重新应用绑定。有关更多详细信息,请参阅答案。
其他可能对您有帮助的答案:这个和这个。