2010-07-12 203 views
0

我在內聯編輯後更新行時遇到問題。 我ColModel是:JQGrid setRowData內聯編輯後

colModel: [ 
    { name: 'Email', index: 'Email', editable: true }, 
    { name: 'ReferenceEmail', index: 'ReferenceEmail', editable: true }, 
     // hidden: true, editable: true, editrules: { edithidden: true} 
    { name: 'Title', index: 'Title', editable: true, edittype: "select", 
     editoptions: { value: "Mr:Mr;Mrs:Mrs;Ms:Ms;Doctor:Doctor;Sir:Sir"} }, 
    { name: 'Forename', index: 'Forename', editable: true }, 
    { name: 'Surname', index: 'Surname', editable: true }, 
    { name: 'Study_Manager', index: 'Study_Manager', editable: true, 
     edittype: "select", editoptions: { value: "True:True;False:False"} } 
] 

我打算設置referenceemail山坳值=新編輯的電子郵件值,所以我有:

ondblClickRow: function (id, ri, ci) { 
      lastSelUser = id; 
      $("#UserGrid").editRow(id, true, false, reload); 
     } 

進而調用加載的onSuccess編輯的,

現在我的參考電子郵件不會更新 - cell value的警報正確返回,但ref(referenceemail) value的警報是und efined,我已經檢查過,id是事實上正確的。

我試過把saverow放在setRowData之後,但這對結果沒有任何影響。

再次, 我非常感謝所有對此問題的洞察力。

問候, 拜倫科布

回答

0

的部分解決方案,已經發現,任何人知道。該jqGrid的editRow接受以下PARAMATERS:

jQuery("#grid_id").editRow(rowid, keys, oneditfunc, succesfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc 

.setRowData似乎並不在succesfunc工作,但它的工作在aftersavefunc,所以我的新的呼叫是$("#UserGrid").editRow(id, true, false, false, false, false, reload);而不是$("#UserGrid").editRow(id, true, false, reload);

2

我不知道我正確理解你的問題。

在我看來,使用參數editRow而不是succesfunc(見http://www.trirand.com/jqgridwiki/doku.php?id=wiki:inline_editing#editrow)。在數據將被保存在jqGrid中的之後,事件aftersavefunc將被稱爲。只有在$.ajax(無本地數據編輯支持)並且在請求完成之後立即調用事件succesfunc之後纔將數據保存在網格中的之前。

aftersavefunc事件接收作爲參數rowid - 修改行的ID和res - 從服務器的響應。因此,如果服務器根據Email值可以設置ReferenceEmail字段,則可以使用結果。要設置ReferenceEmail場,你可以只使用

$("#UserGrid").jqGrid('setCell',rowid,'ReferenceEmail', data); 

其中dataReferenceEmail新值。

0

從jqGrid的文檔:

$("#updateButton").click(function(){ 
    var success=jQuery("#list5").jqGrid('setRowData',11,{amount:"333.00",tax:"33.00",total:"366.00",note:"<img src='images/user1.gif'/>"}); 

if(success) { 
alert("Succes. Write custom code to update row in server"); 
} 
    else { 
     alert("Can not update"); 
}