2014-10-03 21 views
2

我使用jqGrid javascript插件。 我使用數據類型:json,並且一切正常,旁邊的事實我不想讓jqGrid給我的行ID。jqGrid插件 - 沒有自動行ID?

我不想設置ID,如果我不設置它們,jqGrid會自動爲行提供ID:1,2,3 ...(自動遞增數字)。這是一個問題,因爲我創建了幾個網格,然後多次使用相同的ID。 雖然到目前爲止我還沒有遇到任何問題,但我不希望我的文檔無效。有什麼辦法可以禁用jqGrid自動行ID嗎?

回答

4

電網的每行數據必須有id attribure。它將用於jqGrid的許多回調。所以我建議你分配一些價值。如果您從服務器獲取數據,則數據通常將從數據庫的某個具有唯一標識的表中獲取。在這種情況下,我建議您使用該值作爲id。它將簡化您將來決定實施該功能的數據編輯的實施。

要在客戶端分配值獨特 ID我可以建議你兩種方法:1)的idPrefix 2)的beforeProcessing使用的使用分配唯一id屬性,每一個項目從服務器返回客戶端上

第一種方法非常簡單。如果在輸入數據中未找到id,rowid將根據網格的idPrefix選項的值和輸入數據的id值或由jqGrid生成的1,2,3,...值構建。例如,第一個網格可以使用idPrefix: "a",第二個網格可以使用idPrefix: "b"。在這種情況下,第一格的IDS會"a1""a2""a3",......和第二網格的IDS會"b1""b2""b3",...

在使用的情況下,第二種方法則需要執行beforeProcessing回調,在jqGrid獲得響應後,但在jqGrid處理數據之前,將由jqGrid調用該回調。所以你將能夠預處理的數據。例如,您可以對數據項進行循環,並將id屬性分配給例如$.jgrid.randId()的每個項目。方法$.jgrid.randId()將生成唯一的id值。所以你會沒有id更多的重複。

+0

謝謝。儘管我可以在服務器上輕鬆地提供id,因爲我在數據上執行了服務器端循環。但我最好不要這樣做。我將使用idPrefix選項。 – user3599803 2014-10-04 18:08:45

+0

@ user3599803:不客氣! – Oleg 2014-10-04 18:13:55

+0

@ user3599803:小評論**不是關於我的答案**。你在5個月內只用了2次投票。投票是主要可能**,以幫助其他人**找到**真正有用的**信息在stackoverflow。投票是排序的主要標準。您每天最多可以投票30個答案或問題**(請參閱[此處](http://meta.stackexchange.com/a/5213/147495))。所以如果你有什麼幫助其他用戶請投票所有有用的答案和問題,你在stackoverflow找到。 – Oleg 2014-10-05 11:11:05