2012-09-11 53 views
0

當用戶點擊添加並點擊重新加載按鈕而不保存該行時,添加按鈕不會被恢復。保存&取消按鈕仍處於活動狀態。如何手動取消內聯行編輯?或者有沒有辦法找到這些按鈕,以便我可以隱藏它們?手動取消內聯行編輯?

回答

1

爲了使添加的按鈕通過inlineNav您需要刪除類'ui-state-disabled'(致電.removeClass('ui-state-disabled'))。要禁用該按鈕,您需要添加類'ui-state-disabled'(請撥打.addClass('ui-state-disabled'))。爲了識別(關於jQuery選擇)按鈕,您需要知道按鈕的ID將從網格ID和基於按鈕名稱構造的後綴構造而成:"_ilsave","_ilcancel""_iladd","_iledit"。例如,如果網格的ID是"list"那麼保存按鈕的ID將是"list_ilsave"

之前或刷新網格時,你可以使用navGridafterRefreshbeforeRefresh回調(見the documentation)或做loadComplete回調這裏面復位後狀態的按鈕。例如

loadComplete: function() { 
    var idSelector = "#" + $.jgrid.jqID(this.id); 
    $(idSelector +"_ilsave").addClass('ui-state-disabled'); 
    $(idSelector +"_ilcancel").addClass('ui-state-disabled'); 
    $(idSelector +"_iladd").removeClass('ui-state-disabled'); 
    $(idSelector +"_iledit").removeClass('ui-state-disabled'); 
} 

或者您可以使用showAddEditButtons代替上述所有的呼叫:

loadComplete: function() { 
    $(this).jqGrid("showAddEditButtons"); 
} 

我包括上面的代碼主要是針對你需要做其他類型的「授權」或「的情況下,禁用「按鈕。

+0

奧列格 - 是jqGrid的主人 –

+0

@jeffery_the_wind:謝謝! – Oleg

+0

@ Oleg:非常感謝Oleg。我能夠通過他們的id找到按鈕,並相應地啓用/禁用它們。 – tempid

0

您需要使用restoreRow功能,在這裏看到:http://www.trirand.com/jqgridwiki/doku.php?id=wiki:inline_editing&s%5B%5D=editrow

你可以做一個按鈕,就總是與這樣的功能恢復選定行:

$('#the_button').click(function(){ 
    var rowid = jQuery('#grid_id').jqGrid('getGridParam', 'selrow'); 
    jQuery("#grid_id").jqGrid('restoreRow',rowid, function(){}); 
}); 
+0

我不想恢復該行。我想觸發取消事件。無論如何,我嘗試了你的代碼,並沒有工作。網格最初是空的。檢索到的rowid是'new_row'。有任何想法嗎? – tempid

+0

你能提供你的網格定義嗎?我仍然認爲你需要使用restoreRow函數。我假設你正在使用內聯導航按鈕。 –

+0

這是我第一次使用jqgrid。以下是代碼 - http://pastebin.com/FFgb3dTY你正在尋找什麼? – tempid