2010-07-13 52 views

回答

2

直接地,它不受單元格編輯模式的支持,但在我看來,您可以像內聯編輯一樣自己實現它(例如,參見jqGrid - edit only certain rows for an editable column)。您不應該將jqGrid的cellEdit參數設置爲true,而是直接使用單元編輯方法,如http://www.trirand.com/jqgridwiki/doku.php?id=wiki:cell_editing#methods中描述的editCell

另一種方法是使用雙擊進行內聯編輯而不是單元編輯。

+0

嗨@Oleg,如果我設置cellEdit:false,那麼像editCell這些單元格編輯方法不起作用。所以如果你想要單元格編輯,但雙擊(而不是行編輯)啓用,那麼我想這似乎不可能。 – rsmoorthy 2011-01-30 17:56:16

+0

@rsmoorthy:你說得對。雙擊單元格編輯的用法並不那麼容易。無論是必須編寫更多的代碼,還是使用內聯編輯,而不是單元格編輯。 – Oleg 2011-01-30 19:38:04

0

首先讓我感謝您閱讀您的回覆我能夠提出這個解決方案。我需要一些特定的細胞編輯行爲。我需要能夠通過點擊只選擇一行。沒有多重選擇。我需要通過雙擊激活的單元格編輯。如果點擊了所選行以外的行,我需要能夠取消編輯。我還需要能夠限制用戶輸入。我最初的谷歌搜索把我帶到這裏,當我偶然發現你發佈的其他項目時,我剛剛放棄了希望。

這是我想出的解決方案。大部分來自你以前的答案。我做了一些改變。所以這個功勞大部分歸功於你,但我想在這裏發佈它來幫助別人。這是我第一次發佈解決方案,所以我希望它是明確的和有幫助的。

edit.iCol。 edit.iRow和edit.rowID被存儲,以便我們可以在編輯時取消。在這裏使用你自己的變量來存儲這些值。

 cellEdit: true, 
     cellsubmit: 'clientArray', 
     beforeSelectRow: function(rowid) { 
      if (edit.iRow != null && rowid !== edit.rowID) { 
       $('#list').jqGrid("restoreCell",edit.iRow, edit.iCol); 
       edit.iRow = edit.iCol = null; 
      } 
      $('#list').jqGrid('setSelection', rowid); 
     }, 

     afterSaveCell: function (rowid, name, val, iRow, iCol) {   
       alert("after"); 
     }, 
     beforeSaveCell: function (rowid, name, val, iRow, iCol) { 
      alert("before"); 
     }, 
     ondblClickRow: function (rowid, iRow,iCol) { 
      edit.iRow = iRow; 
      edit.iCol = iCol; 
      edit.rowID = rowid; 
      $("#list").editCell(iRow, iCol, true); 
     } 
相關問題