【发布时间】:2011-11-21 23:11:01
【问题描述】:
我在 jqGrid 导航器上添加了自定义编辑按钮控件如下:
jQuery("#grid").navButtonAdd('#pager',
{
caption:"Edit",
buttonicon:"ui-icon-pencil",
onClickButton: editSelectedRow,
position: "last",
title:"click to edit selected row",
cursor: "pointer",
id: "edit-row"
}
);
因此,它不使用默认函数:editGridRow,而是使用我的自定义函数 editSelectedRow。但是,我还想添加 doubleClick 函数,以便它在 doubleClick 上调用 editSelectedRow。
使用默认的 editGridRow 函数可以这样工作
ondblClickRow: function()
{
var rowid = jQuery("#grid").jqGrid('getGridParam','selrow');
jQuery(this).jqGrid('editGridRow', rowid);
}
但是,当我将默认的 editGridRow 函数替换为我的默认函数 editSelectedRow 时,
ondblClickRow: function()
{
var rowid = jQuery("#grid").jqGrid('getGridParam','selrow');
jQuery(this).jqGrid('editSelectedRow', rowid);
}
我在 firebug 中收到以下错误:
uncaught exception: jqGrid - No such method: editSelectedRow
然而,功能 editSelectedRow 确实存在,并且可以通过单击自定义编辑按钮来工作。请帮忙,谢谢。
更新: @Oleg:根据要求,这里是代码定义方法:editSelectedRow
function editSelectedRow(rowid)
{
var rowid = jQuery("#grid").jqGrid('getGridParam','selrow');
if( rowid != null )
{
var dialogId = '#edit-form-dialog';
var dialogTitle = 'Edit Customer';
$(dialogId).load('/customer/edit/id/' + rowid, function ()
{
$(this).dialog(
{
modal: false,
resizable: true,
minWidth: 650,
minHeight: 300,
height: $(window).height() * 0.95,
title: dialogTitle,
buttons:
{
"Save": function ()
{
var form = $('form', this);
$(form).submit();
$("#grid").trigger("reloadGrid");
},
"Cancel": function ()
{
$("#grid").trigger("reloadGrid");
$(this).dialog('close');
}
}
});
LaunchEditForm(this);
});
}
else
{
jQuery( "#dialogSelectRow" ).dialog();
}
return false;
}
@Oleg:谢谢,您建议不要使用自定义方法 editSelectedRow 代替方法 editGridRow。我使用它的原因是我的表单是Zend Forms,我需要 Zend Form 的所有花里胡哨的东西都可用。服务器生成此表单并将其加载到对话框表单中。如果有办法在不使用我的 editSelectedRow 自定义方法的情况下仍然实现这一点,我会很高兴学习它。谢谢。
【问题讨论】:
-
能否包含定义(实现)
editSelectedRow方法的代码?我想你不要用另一个实现editSelectedRow替换editGridRow。 -
@Oleg:我已经用请求的代码更新了问题。谢谢
-
我看到你从不使用voting。我想你不知道如何使用它以及它有什么价值。您有权每天对大约 30 个答案或问题进行投票。投票中最重要的不是您(免费)将声誉积分给予他人。最重要的是更多投票的问题和答案将被其他用户找到。因此,对有用的答案进行投票将有助于其他人找到信息。您不仅可以对您的问题投票答案。因此,如果您想帮助其他用户,您应该使用您的投票权。
标签: javascript jqgrid double-click