在我的網格上,用戶在最下面一行輸入文本後,我添加另一行,以便他們可以根據需要填寫另一行。網格將根據用戶的需要增長。這個工作正常,但是在頁面重新加載並從數據庫填充後,addrowdata()函數不會兌現現有的行ID並創建重複項,從1開始,例如1。 jqg1。它應該查看現有的行ID並創建新的唯一ID。所以如果我已經有5行,它可能會從jqg6開始。這裏是內部onCellSelect相關代碼:jqgrid randId()在頁面重新加載後產生重複
var records = jQuery("#table-1").jqGrid('getGridParam', 'records');
var lastRowId = jQuery("#table-1").jqGrid('getDataIDs')[records - 1];
if (lastRowId == id)
{
jQuery('#table-1').addRowData(undefined, {}, 'last');
}
我自己也嘗試$ .jgrid.randId(),而不是不確定的,相同的結果符合市場預期。
感謝
瑞安
謝謝@Oleg,我希望你能回答。實際上,我將jqg1值保存到數據庫中,並且在頁面重新加載時填充網格時使用這些id重新填充網格。我想要網格創建我將保存在數據庫中的唯一ID。這樣我就不必去數據庫了,每次有人添加一行客戶端時,找到最佳值,增加值。 – krazy 2012-02-10 10:33:49
@ krazy:我覺得不好。我知道的所有數據庫都包含某種AutoIncrement整數類型。例如,在SQL中,您可以使用「int IDENTITY(1,1)NOT NULL」或「int PRIMARY KEY IDENTITY」來聲明列。有關更多示例,請參見[這裏](http://www.w3schools.com/sql/sql_autoincrement.asp)。使用JavaScript中生成的ids更安全。你使用哪個數據庫? – Oleg 2012-02-10 14:04:16
問題是關於創建一個唯一的行ID,我現在明白$ .jgrid.randId沒有看現有的值。該表具有複合主鍵。我會創建自己的rowId,謝謝。 – krazy 2012-02-10 15:25:34