2011-07-21 53 views
5

在我的格式,我有以下代碼:jqGrid的數字格式化使用

formatter: { 
    number: { decimalSeparator: ".", thousandsSeparator: " ", decimalPlaces: 4, defaultValue: '0.0000' } 
}, 

,在我colModel我:

{ name: 'SalesPrice', index: 'SalesPrice', width: 90, align: 'left', formatter:'number', editable: true, editoptions: 
        { 
         readonly: true 
        } 
        } 

我的數據類型設置爲 「本地」

當我第一次顯示錶單時,我得到了「0.00」而不是「0.0000」,正如我所希望的那樣。此外,在內聯編輯模式下,SalesPrice值根據網格中的其他單元格而變化。更新後,SalesPrice值顯示爲整數。

我會做什麼錯?

編輯:更完整的代碼

$("#customerOrderLineList").jqGrid({ 
    //  url: 'someUrl', 
    datatype: 'local', 
    formatter: { 
     number: { decimalSeparator: ".", thousandsSeparator: " ", decimalPlaces: 4, defaultValue: '0.0000' } 
    }, 
    //  mtype: 'POST', 
    colNames: [ 'Part Number', 'Sales Price'], 
    colModel: [ 
        { name: 'PartNumber', index: 'PartNum', width: 90, align: 'left', editable: true, editoptions: 
        { 
         dataInit: function (el) { 
          $(el).autocomplete({ 
           source: "Autocomplete", 
           minLength: 1 
          }); 
         } 
        } 
        }, 

        { name: 'SalesPrice', index: 'SalesPrice', width: 90, align: 'left', formatter: 'number', 
         formatoptions: { decimalSeparator: ".", thousandsSeparator: " ", decimalPlaces: 4, defaultValue: '0.0000' }, editable: true, editoptions: 
        { 
         readonly: true 
        } 
        } 
      ], 
    pager: jQuery('#pager'), 
    rowNum: 10, 
    rowList: [5, 10, 20, 50], 
    sortable: true, 
    sortname: 'PartNum', 
    sortorder: "asc", 
    viewrecords: true, 
    imgpath: '', 
    autowidth: true, 
    onSelectRow: function (id, status) { 
     if (id && id !== lastsel) { 
      $('#customerOrderLineList').jqGrid('restoreRow', lastsel); 
      $('#customerOrderLineList').jqGrid('editRow', id, true); 
      lastsel = id; 
     } 
    }, 
    caption: 'Caption' 
}); 

回答

6

你不公佈完整的代碼,所以現在還很難說你有什麼問題。只要看看the demo,你可以解釋並且沒有問題。

我使用了formatoptions,因爲我不清楚你在哪裏設置了numberformatter值。

+0

我按照這裏的例子http://www.trirand.com/jqgridwiki/doku.php?id=wiki:predefined_formatter。基本上,我是爲整個網格而不是特定的列聲明格式化程序。使用給定的例子在網格的初始加載中工作。但是,當SalesPrice的值發生變化時,我仍然得到一個返回的整數。我將更新OP – DavidS

+0

中的代碼SalesPrice更新的問題與格式沒有任何關係,儘管有些人可能預期將值「3」傳遞爲「格式化」爲「3.000」。但我找到了解決這個問題的辦法。所以,格式化程序的唯一未解決的問題與全局聲明格式化程序似乎不像預期一樣。也許我錯了。 – DavidS

+1

@DavidS:您誤解了http://www.trirand.com/jqgridwiki/doku.php?id=wiki:predefined_formatter中的信息。例如grid.locale-en.js的特定於語言的文件定義了具有許多屬性(包括「$ .jgrid.formatter.number」)的$ .jgrid對象。例如,你可以設置'$ .jgrid.formatter.number.decimalPlaces = 4; $ .jgrid.formatter.number.defaultValue:'0.0000';'在調用'$(「#customerOrderLineList」)。jqGrid({...});'之前'。您可以覆蓋設置,但沒有jqGrid的'formatter'參數。 – Oleg