我想在单击链接时获得编辑对话框.我已经附上了代码



这是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浏览器的内存,并允许进行一次绑定,而不是在每次重新加载网格后重新应用绑定。有关更多详细信息,请参阅答案。

其他可能对您有帮助的答案:这个和这个。

最新更新