2013-06-24 52 views
0

我的jqGrid定製格式化列具有已定製應用格式的量列和結果可以是本身的量,或特殊字符(例如:*「」,NA,圖像)。所有特殊字符都是需要的,因爲它描述了數量的種類。 (用於如:*表示未授權用戶看到的金額)排序中的jqGrid

我的挑戰是我怎麼解決這。

以下是我的金額列的列模型。

[name: 'amount', index: 'amount', type: "String", align: "right", sorttype: "float", title: false, formatter : someCustomFormatterFunction] 

例如: 假設我的數據量是這樣的[100,180,120,130,160] 然而後自定義格式此更改爲[100,*,圖像,130,NA] 我的類型是「浮動」。因爲要求最初僅用於金額。但更新的要求介紹了這些特殊字符。

現在,在排序時,我應該看到所有的特殊字符和數字在一起。類似於[100,130,*,圖像,NA]或[*,圖像,NA,100,130]的升序。

但是,我得到它爲[100,圖像,130,NA,*]。我能理解爲什麼我會這樣。

我該如何以適當的方式實現排序。

此外,下一步將按特定順序對特殊字符進行排序。 我所有的想法都讓我執行一些醜陋的大邏輯。 有沒有關於如何實現這一點的任何想法。

感謝, 山姆

回答

2

如果使用自定義格式,把文本像*imageNA100130在您將無法使用sorttype is "float"列。

我會建議你使用自定義排序代替。你需要的只是定義sorttype作爲函數。在這種情況下就可以更換數據至將排序代替原來的過程中可以使用其他值。所以,你可以例如替換值"*""image""NA"100130"*""image""NA""000100""000130"(所有的值都是字符串現在)。在這種情況下,數據窗口成功地按照字符串排序。或者,您甚至可以使用原始號碼100,180,120,130,160。函數sorttype獲得obj作爲第二個參數,obj表示該行的完整數據。如果您保留原始值,則可以使用它進行排序。你不會發布任何代碼來顯示你使用的是哪種jqGrid,以及你如何填充它,所以我現在無法得到更多的細節。

有關自定義排序的詳細信息和代碼示例見the answerthis one