2012-02-14 15 views
8

Sto utilizzando il tipo 'numero' per immettere numeri in virgola mobile in una griglia jqGrid. Sono in grado di formattare i float per il rendering con virgola (usiamo un comman in Europa come separatore decimale). Tuttavia, i campi di input (modulo di modifica o inline) presuppongono comunque che lo inserito nei numeri in virgola mobile utilizzi un punto e non una virgola.jqGrid: formato numerico con virgola come punto decimale

formatoptions: {decimalSeperator : ','} 

sembra influenzare il rendering ma non la convalida dei dati di input.

Qualsiasi opzione ragionevole qui?

risposta

7

È possibile creare i propri formmaters personalizzati.

http://www.trirand.com/jqgridwiki/doku.php?id=wiki:custom_formatter

La guida spiega bene. È necessario creare un formmater e un unformmater per la modifica.

creare una funzione di formattazione in questo modo:

<script> 
    jQuery("#grid_id").jqGrid({ 
    ... 
     colModel: [ 
      ... 
      {name:'price', index:'price', width:60, align:"center", editable: true, formatter:numFormat, unformat:numUnformat}, 
      ... 
     ] 
    ... 
    }); 

    function numFormat(cellvalue, options, rowObject){ 
     return cellvalue.replace(".",","); 
    } 

    function numUnformat(cellvalue, options, rowObject){ 
     return cellvalue.replace(",","."); 
    } 
</script> 

È inoltre possibile aggiungere $ o altri tipi di formattazione in queste funzioni.

+0

Nota Bene: Il convertitore di migliaia di separatori è uno spazio per continentali quando gli anglo-sassoni usano "," – nicolallias

+0

Ciò non risponderebbe alla domanda fornita dal proprietario della domanda. – Jpepper

+1

Ecco perché è un commento; se si mantiene il separatore di migliaia di inglese, si otterrà un'assurdità per qualsiasi notazione numerica, ad es. 12,345,678,9 -> 12,345,678,9 anziché il corretto (e il proprietario richiesto) 12345678,9 – nicolallias

Problemi correlati