2012-10-05 51 views
2

我的服務器代碼將一些列作爲比率值傳輸,從0.0到1.0。我需要格式化將其編輯爲百分比。我想在JavaScript端做,而不需要修改服務器端。因此,如果我添加一個自定義格式化程序,將值乘以100,則顯示屏按預期工作。而且,當我點擊編輯按鈕時,內聯編輯框也會以百分比顯示值。當我保存時,問題就開始了 - 數值被格式化程序再一次轉換爲,給了我10000這樣的東西。所以我需要對稱性,所以我創建了一個非格式化器,它將值除以100。工作 - 現在編輯控制顯示它作爲一個比例,這不是我想要的(儘管現在保存工作正常)。jqGrid - 格式比率字段爲百分比值

是否有任何解決方法而無需更改服務器代碼?

回答

1

可以跳過unformatter贊成定製編輯型的,只需在您的colModel使用:

{ ..., edittype: 'custom', editoptions: { custom_element: function(value, options) { return $('<input type="text" value="' + value + '"/>'); }, custom_value: function(element){ return parseFloat(element.val())/100; } }} 
6

爲了有充分的支持,例如0.0到1.0顯示爲數據的自定義類型百分比值包括編輯和搜索你必須工具:

  1. 實施formatter在自定義的方式電網中顯示的數據。
  2. 實施unformat允許從其「視覺表示」訪問數據。在某些情況下,該方法將被jqGrid使用(例如在表單編輯的初始化階段)。
  3. 定義sorttype,這可能是一些兼容類型的數據,如'number'或您的自定義排序功能。
  4. 使用edittype: 'custom'並執行custom_elementcustom_valueeditoptions(參見the documentation)。
  5. 使用stype: 'custom'並實現custom_elementcustom_valueeditoptions

在某些情況下,可以跳過一個步驟,但在常見情況下,您必須考慮實施所有步驟。您應該驗證上述哪些步驟仍未在您的解決方案中實施。

The demo是演示從the old answeranother answer的修改。該演示爲,不面向您的直接問題。它只顯示爲什麼如何可以完全實現jqGrid中的自定義控件。只有在沒有實現服務器部分的情況下,表單編輯的功能才能在演示中不完整。如果需要的話,可以使用the answer的方法,它顯示瞭如何在jqGrid中實現本地表單編輯。我不想讓代碼更復雜,因爲需要展示演示的主要目的。

+0

謝謝你這樣詳細的答案。 –