2010-07-27 81 views
1

從jqGrid JSON數據發佈到瀏覽器,我可以看到行標識(由JSON行數據中的「i」表示)正確通過,但是當我做出選擇並檢查$('#list').getGridParam('selarrrow')它顯示的是與其ID相對的所選行號jqGrid'selarrrow'返回行號而不是行ID

有沒有人有這方面的經驗?由於

UPDATE

下面是JSON結果的圖片(複製和粘貼不是一個真正的選擇)

(bigger version of the image here)

JSON Result http://i31.tinypic.com/25qwufd.png

和JavaScript代碼來檢查選擇:

<script type="text/javascript"> 
    function checkSelection(){ 
     alert($('#list').getGridParam('selarrrow').join()); 
    } 
</script> 
+0

你能張貼測試JSON數據和JavaScript代碼示例(尤其是jsonReader使用)。 – Oleg 2010-07-27 11:23:47

+0

對不起Jimbo,但我不能重現您發佈的數據和代碼的問題。看例如http://www.ok-soft-gmbh.com/jqGrid/GetScheduledReleases.txt和http://www.ok-soft-gmbh.com/jqGrid/GetScheduledReleases.htm。如果您發佈了部分JSON數據(僅限某些行)和jqGrid聲明的代碼(可以是簡化版),則無需運行服務器組件即可重現問題。然後你可以找到你的問題的解決方案。 – Oleg 2010-07-27 13:34:20

+0

我想從服務器發送的ID將被忽略,所以行號將是真正的行ID。你可以在'loadComplete'事件中用'getDataIDs'方法來驗證。 – Oleg 2010-07-27 13:39:09

回答

3

賈斯汀和奧列格 - 我確定你被放在這個星球上解決世界的jQueries :)再次感謝您對這個問題的幫助。肯定它是如何獲得的截圖i = <id>上面,我不知道,但它 -

SOLUTION
在我的代碼,網格的列定義didnt指定從中借鑑各行的ID的key列沒有爲每一行使用該ID。我改變了電網定義如下:

..., 
colNames: ['ID', 'Family', 'Variety', 'Type', 'EDI #', 'Colour', 'Swatch'], 
colModel: [{ name: 'id', index: 'id', key: true, hidden: true }, 
... 

(請注意在colModel的key: true ID列)

0

你確定嗎?根據jqGrid documentation for selarrrow

此選項是隻讀的。確定當multiselect設置爲true時當前選定的行。這是一維數組,數組中的值對應於網格中選定的ID。

所以,如果它是返回行號在jqGrid API有一個錯誤。您是否可以發佈更多信息,例如您致電selarrrow的結果以及網格中ID的完整列表?

0

我想從服務器發送的ID將被忽略,所以行號將是真正的行ID。您可以使用loadComplete事件中的getDataIDs方法驗證此情況。爲什麼這些ID會被忽略我只能說如果你發佈更多的信息。