2011-04-21 162 views
3

我有一個在jqgrid中添加一個新的空行的問題。jqgrid addrowdata問題

我colmodel是:

colModel: [{ name: 'recid', index: 'testid', hidden: true, editable: true, editrules: { edithidden: true} }, 
      { name: 'JobTask.Id', index: 'JobTask.Id', hidden: true }, 
      { name: 'InvolvedParty.Id', index: 'InvolvedParty.Id', hidden: true, editable: true, editrules: { edithidden: true} }, 
      { name: 'InvolvedParty.Lastname', index: 'InvolvedParty.Lastname', width: 100, align: 'left', editable: true}, 
      { name: 'deletefield', width: 100, sortable: false, title: false, align: 'center', label: ' '}], 

我用插入的代碼行是:

var rowid = jQuery.Guid.New(); 
var newRowData = [{ "recid": rowid, "JobTask.Id": "@(Model.id)", "InvolvedParty.Id": "", "InvolvedParty.Lastname": "", "deletefield": ""}]; 
$("#grid_id").addRowData(rowid, newRowData); 

然後我輸入一些數據並保存一行

jQuery('#grid_id').saveRow(rowid); 

一切工作正常。現在當我再次按下插入時,我得到一個空行 只有一個單元格,甚至不可編輯。我的新插入的行 應該有兩個字段deletefield其中包含兩個按鈕(刪除,保存)。

任何想法爲什麼會發生這種情況?

回答

2

嘗試的是

var newRowData = [{ "recid": rowid, "JobTask.Id": "@(Model.id)", "InvolvedParty.Id": "", "InvolvedParty.Lastname": "", "deletefield": ""}]; 

,而不是做:

var newRowData = { "recid": rowid, "JobTask.Id": "@(Model.id)", "InvolvedParty.Id": "", "InvolvedParty.Lastname": "", "deletefield": ""}; 
  • 如果這行不通,確保添加的行肯定有不同的ID

  • 你也可以嘗試在加入新行後重新加載trigger(「reloadGrid」)

希望這將有助於我沒有更多的想法

編輯:

好吧,我現在什麼是錯

從jqGrid的維基:

...此方法可以一次插入多行 行。在這種情況下,數據 參數應該是數組定義爲 [{name1:value1,name2:value2 ...}, {name1:value1,name2:value2 ...}]和 第一個選項rowid應該包含 數據名稱對象應該是 充當行的id。這不是 需要在這種情況下rowid 的名稱應該是從 colModel的一部分。

是meens你應該能夠同時使用[]這樣的:

var newRowData = [{ "recid": rowid, "JobTask.Id": "@(Model.id)", "InvolvedParty.Id": "", "InvolvedParty.Lastname": "", "deletefield": ""}]; 

$("#grid_id").addRowData("recid", newRowData); 
+0

該死的方括號是問題,謝謝:) – zynaps 2011-04-21 10:59:03

+0

是你對編輯後正確的,它的工作原理那也是,再次感謝你。 – zynaps 2011-04-21 12:19:16