【发布时间】:2016-11-17 13:55:45
【问题描述】:
问题是我能够在单击具有 10 条记录的当前页面的链接时获得编辑对话框。但是当我导航到第二页时,我没有得到编辑对话框。请帮忙 提前致谢
colModel:{ name: "FirstName", index: "FirstName", width: 100, sortable: true, editable: true, formatter: GetRow, unformat: GetCellValue },
function GetRow(cellvalue, options, rowObject) {
return "<a href='#' class='GetLink'>" + cellvalue + "</a>";
}
$('.GetLink').click(function () {
var row = $('#grid').jqGrid('getGridParam', 'selrow');
if (row) {
$('#grid').jqGrid('editGridRow', row, { recreateForm: true, closeAfterEdit: true, closeOnEscape: true, reloadAfterSubmit: false,});
}
else {
alert("Select the row you want to edit");
}
});
【问题讨论】:
-
请在您的previous question 上重新阅读我的回答。您应该现在使用
$('.GetLink').click,因为它在当前存在a.GetLink上注册了链接。如果用户导航到第二页或按某列排序,则网格体将重新创建。所有之前创建的a.GetLink都将被删除,新的a.GetLink将没有事件处理程序。您可以通过将$('.GetLink').click移动到loadComplete内来解决此问题,但我建议您改用beforeSelectRow。 -
@Oleg 你能告诉我如何使用 $('.GetLink').click 在 loadcomplete 事件中或 beforeSelectRow... 我不知道这些事件..
-
如果你包含更多完整的代码,你会更好,或者如果你在 JSFiddle 中创建演示,例如,它演示了问题,我会修复代码。
-
我制作了演示:jsfiddle.net/wugfty1o/3,它演示了如何使用自定义格式化程序和
beforeSelectRow实现“onClick”。 -
@Oleg 请在 JsFiddle Demo找到代码