2011-04-11 49 views
1

我知道這聽起來很簡單,有些人在那裏。我也試過這個one。但由於某種原因,我真的不能刷新和查看我新添加,編輯和刪除jqgrid。如何在jqgrid中加載新增的數據

我正在製作一個按鈕,在我的程序中添加,編輯和刪除之後,它將刷新我的jqgrid並顯示我在其中所做的任何更改。例如,我添加了新的數據。在第一次嘗試時,它會顯示新添加的數據,但在第二次時,它不會再顯示。我的編輯和刪除數據也不會刷新。這裏的代碼:

function Edit(){ 
    var selected = $("#list1").jqGrid('getGridParam', 'selrow'); 
    var dat = { 
    "ID": 'xyz', 
    ... 
    "keyFields": [{"..."}] 
    };     
    update(dat); 
    $('#list1').trigger('reloadGrid'); 
} 

function update(dat){ 
    $.ajax({ 
    type: 'GET', 
    url: 'mydata.php?' + $.param({path:'this/update',json:JSON.stringify(dat)}), 
    dataType: Settings.ajaxDataType, 
    success: function(data) { 
     if ('error' in data) 
     { 
     alert('ERROR']); 
     } 
    } 
    }); 
} 

服務器端是好的,並更新我在屏幕上做的任何事情。當我第一次只用添加按鈕來做這件事時,根本沒有問題。只有在編輯和刪除按鈕後纔出現問題。希望有人能幫助我理解這一點。

回答

3

你沒有發佈任何你使用的jqGrid的定義,所以我只能說你發佈的代碼有什麼問題。

第一個問題是,你必須把$('#list1').trigger('reloadGrid');success手柄$.ajax呼叫您update功能的。只有在服務器上成功更新數據之後,才能觸發網格重新加載。

第二個可能的問題,如果你使用loadonce:true參數中的jqGrid的的datatype參數的初始值更改爲datatype:'local'這個可以有。如果您使用loadonce:true並需要從服務器重新加載數據,則必須將jqGrid的datatype參數重置爲其初始值('xml'或'json'取決於您使用的內容),然後只需重新加載網格就' reloadGrid」。要更改datatype,您可以使用jqGrid的setGridParam方法。

+0

hhhmmm,它現在正在工作...我怎麼沒有想到這一點。?再次感謝Oleg。你總是救了我。也感謝提示和新的學習 – jayAnn 2011-04-12 02:44:02

+0

@jayAnn:不客氣! – Oleg 2011-04-12 07:26:26