2011-09-07 59 views
0

編輯操作按鈕添加到使用下面的代碼行的jqGrid如何提供即時反饋。 編輯完成後,如果單擊Save action按鈕,則不會發生任何事情,Save按鈕保持活動狀態。 保存需要一些時間,它看起來像點擊被忽略。用戶一次又一次地點擊保存按鈕。如果保存操作按鈕被點擊的jqGrid

如何提供即時反饋點擊保存按鈕後保存完成之前:改變按鈕圖標保存到保存的動畫,刪除可能再次點擊它,展現節能消息? 使用jqueryUI。

colModel: [{"fixed":true,"label":" change ","name":"_actions","width":($.browser.webkit == true? 37+15: 32+15) 
    ,"align":"center","sortable":false,"formatter":"actions", 
"formatoptions":{"keys":true,"delbutton":false,"onSuccess":function (jqXHR) {actionresponse = jqXHR;return true;} 
    ,"afterSave":function (rowID) { 
    cancelEditing($('#grid'));afterRowSave(rowID,actionresponse);actionresponse=null; } 
    ,"onEdit":function (rowID) { 
     if (typeof (lastSelectedRow) !== 'undefined' && rowID !== lastSelectedRow) 
     cancelEditing($('#grid')); 
     lastSelectedRow = rowID; 
     } 
    }} 

更新

火狐使網格無效(變灰),如果正確地保存在沒有任何代碼在聯編輯兩種方式。所以它看起來像IE問題。

如何變灰的jqGrid在IE 9還?

回答

1

如果我理解你糾正你的問題不是「動作」格式化的問題。如果用戶只是按下「Enter」並且該行應該保存在服務器上,那麼您在內聯編輯中遇到同樣的問題。有沒有直接事件,這將在ajax請求到服務器之前被觸發。

儘管如此,還是有不同的間接接收控制和顯示用戶的「保存...」消息的可能性。最簡單的方法是使用serializeRowData來顯示消息。您不應忘記關閉errorfuncsuccessfunc方法中的「保存...」格。

+0

謝謝。我更新了在IE中實現FF行爲的問題。也許有可能使用它。我也試圖在爲'jQuery.extend(jQuery.jgrid.defaults'使用ajaxOptions的方法使用jQuery的stadard AJAX顯示/隱藏事件的性質,但這些事件不會被觸發 – Andrus

+0

@Andrus:你在你的問題要求提供「即時反饋」對於某種「保存動畫」而言,它與「loadui:」block「'不一樣,你應該檢查你的代碼,使用''#lui _」+ $ tpid' div進行一些操作,你可以做的。 – Oleg

+0

我不清晰的問題抱歉,我加入更好的問題,以http://stackoverflow.com/questions/7333943/how-to-gray-out-jqgrid-in-save-in-inline-edit-in- ie-like-firefox-does。 – Andrus