我对jqGrid的导航仪添加自定义编辑按钮控制如下:如何设置双击功能调用自定义函数中的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);
}
然而,当我跟我的默认功能editSelectedRow这样替换默认editGridRow功能,
ondblClickRow: function()
{
var rowid = jQuery("#grid").jqGrid('getGridParam','selrow');
jQuery(this).jqGrid('editSelectedRow', rowid);
}
我得到萤火内的下列错误:
uncaught exception: jqGrid - No such method: editSelectedRow
函数editSelected然而,行确实存在,并且与点击自定义编辑按钮一起工作。请帮忙,谢谢。
UPDATE: @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:谢谢,你建议不要在地方法editGridRow的使用自定义的方法editSelectedRow。我使用这个的原因是我的表单是Zend Forms,我需要所有Zend Form的花里胡哨的功能。服务器生成此表单并将其加载到对话框中。如果还有一种方法可以在不使用我的editSelectedRow自定义方法的情况下实现这一点,我很乐意学习它。谢谢。
你能否包含定义(实现)'editSelectedRow'方法的代码?我想你*不会用另一个实现'editSelectedRow'替换editGridRow。 – Oleg
@ Oleg:我已经更新了所要求的代码的问题。谢谢 –
我看到你永远不会使用[voting](http://stackoverflow.com/privileges/vote-up)。我想你不知道如何使用它以及它有哪些价值。您有权每天投票回答约30个问题或问题。投票中最重要的不是你给(免费)声望点给其他人。最重要的是,其他用户会发现更多的投票问题和答案*。因此,对有用答案进行投票将有助于其他人查找信息。您不仅可以在您的问题上投票回答。所以如果你想帮助其他用户,你应该使用你的投票权。 – Oleg