2010-04-23 55 views
1

我是基於這個文檔 http://www.trirand.com/jqgridwiki/doku.php?id=wiki:cell_editing上CellEdit jqGrid的檢索網格編號

試圖做一個單元格內編輯我有兩個問題:

  1. 我怎樣才能得到我行的指數發佈到服務器: 我得到發佈的信息如下:細胞 b的 一)值)ROWID

的東西是THA t rowId不幫助我。我需要顯示的信息的實際ID,以便我可以使用該ID進行服務器更新。

colNames:[ 'ID', 'Codigo', '農佈雷'],

colModel: {名稱: 'ID',索引: 'ID',寬度:50,對齊: '左' ,隱藏的:真},

{名稱: 'Codigo',索引: 'Codigo',寬度:55,對齊: '左',編輯:真,editrules: {號碼:真}},

{name:'Nombre',index:'Nombre',width:200,align:'left'}],

我需要'Id'做我的更新。

2.我不明白在文檔中如何管理服務器的錯誤,所以我可以顯示錯誤消息。

非常感謝!

注:

一)我已經問trirand的論壇,但沒有人回答我的。 b)如果有人這樣做了,如果幫我粘貼代碼會有幫助。

三)我工作的MVC 2 Asp.net

回答

0

大多是你在線編輯或表單編輯,而不是單元格編輯。我建議您切換到兩種現代表單編輯之一,或者您可以使用

  1. 信息RowId已經是'Id'列的值。 getInd(rowid,false)方法返回由id = rowid指定的網格表中的行的索引。
  2. 爲了能夠顯示從服務器返回的錯誤,您需要知道在錯誤情況下從服務器返回的數據的格式。如果從服務器返回的錯誤有,例如,JSON格式{"Detail":"error text"}(從WFC服務錯誤),你可以這樣定義的jqGrid的loadError參數:

    loadError:功能(XHR,ST,ERR){警報(errorTextFormat(XHR)) ; }

凡解碼錯誤消息,可能看起來像

var errorTextFormat = function (data) { 
    var str = data.responseText.substr(0, 10); 
    if (str === '{"Detail":') { 
     var errorDetail = jQuery.parseJSON(data.responseText); 
     var s = "Error: '"; 
     s += data.statusText; 
     s += "'. Details: "; 
     s += errorDetail.Detail; 
     return s; 
    } else { 
     var res = "Status: '"; 
     res += data.statusText; 
     res += "'. Error code: "; 
     res += data.status; 
     return res; 
    } 
}; 

你可以用它來解碼行編輯的錯誤相同的功能(至少內嵌編輯或表單編輯)errorTextFormat功能。 ASP.NET MVC主要返回HTML格式的消息,因此您的錯誤解碼功能應該是另一種。我不會像其他人一樣使用單元格編輯功能,因此無法幫助您或在單元格編輯中自定義錯誤消息。

+0

謝謝奧列格,我會嘗試內聯編輯。我只是對單元格編輯有興趣,因爲我只需要對該單元格進行編輯。 但我的問題沒有得到回答。我如何發送'Id'到服務器? – Sanchitos 2010-04-27 19:46:08

+0

剛發現,你問我一次。可能你的問題現在已經解決了。也許你現在發現,在一個修改後發送的數據例如列'Nombre'看起來像是'Nombre = NewData&id = 2&oper = edit',所以你所要求的列的識別問題不存在。您同時具有rowId和列名稱(與「列」Id'「相同)。 – Oleg 2010-09-08 23:57:18

0

Q1: 您可以使用Key:真正的,可編輯:真正的,在colModel

{ key:true, name: 'Id', index: 'Id', width: 50, align: 'left', editable: true, hidden:true} 

    Then in add/edit method (add beforeShowForm method in add/edit method), you have to explicitly hide this field the field of id inside of beforeShowForm method 
    $('#tr_Id').hide(); 

    i.e 
     beforeShowForm: function (e) { 
        $('#tr_Id').hide(); 
       } 

Q2:

add 'afterSubmit' method in add/edit/delete method , i'm using Web api Server , 
    i.e 
     afterSubmit: function (response) { 
      if (response.statusText == 'Created') { 
       // alert("Create Successfully") 
       ShowMessage("Add Successfully", 'Success'); 
       //reload the grid 
       $(this).jqGrid("setGridParam", { datatype: 'json' }); 
       return [true]; 
      } 
      else { 
       ShowMessage("Operation Failed", 'Error'); 
       return [false]; 
      } 

     }, 

我希望這會爲你工作。仍然ü需要任何形式的幫助,請在下面評論