我對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