2013-11-28 4 views
0

У меня проблема. Я должен заполнить форму (на странице создания) со многими вводами для чисел, и большинство из них больше 1000 (одна тысяча), поэтому, когда я пишу цифры, у них нет никакого формата (я знаю, это очевидно), тогда после создания, когда показана страница показа, можно видеть, что цифры имеют формат (пример: создать страницу: 1000.5 => показать страницу: 1,000.5). Когда я вызываю страницу редактирования для редактирования записи, входы формы заполняются форматированными цифрами, как это происходит на странице показа, и они создают ошибки в некоторых полях результатов, потому что я должен выполнить некоторые вычисления после загрузки страницы.Изменить формат номера для приложения Grails

Как сохранить числа, загруженные на странице редактирования (и показать страницу тоже) без форматирования? Для меня не имеет значения, следует ли применять решение для всех моих приложений, мне приходится иметь дело с большим количеством чисел, поэтому было бы лучше.

Вид show.gsp не использует g.formatNumber, но (как пример):

По мнению _form.gsp (так в create.gsp и редактировать GSP) это код то же самое поле:

в настоящее время эти результаты:

change format

мне нужно забранные номера в представлении edit.gsp делать не имеют какой-либо формат. Или, если это возможно, изменить форматирование номера приложения по умолчанию.

Заранее спасибо.

+0

Пожалуйста, опубликуйте просмотры snipsets, где напечатан номер. И проверьте, что вы используете grails.views.default.codec. –

+0

В представлении show.gsp не используется g.formatNumber, но (как пример): '' В представлении _form.gsp (так что в файле create.gsp и edit gsp) это код для того же поля: ''.Кодировка: 'grails.views.default.codec =" none "' –

+0

версия grails? –

ответ

0

г: fieldValue применить преобразование номер

Посмотрите source file линии 86 и линии 465.

Я думаю, что проблема в том, что вы используете г: fieldValue и г: ввод вместе. Вы должны выбрать один из двух.

Если вы используете fieldValue в _form.gsp пишут:

<input type="text" value="${fieldValue(bean: liquidacionDeEstanoInstance, field: 'totalLiquidoPagable')}" /> 

и не использовать г: Fied.

Или, второй Choise, использование г: поле, но не использовать г: fieldValue следующим образом:

<g:field name="totalLiquidoPagable" value="${liquidacionDeEstanoInstance.totalLiquidoPagable)}" required=""/> 

Постарайся положить в виде этот код:

Script output: ${liquidacionDeEstanoInstance.totalLiquidoPagable} 
Tagscript output: <%= liquidacionDeEstanoInstance.totalLiquidoPagable > 
Grails tag output: ${fieldValue(bean: liquidacionDeEstanoInstance, field: 'totalLiquidoPagable')} 

Я аспектировал иметь

Script outout: 1000.5 (or if you have an app level converted configured 1,000.5) 
Tagscript output: 1000.5 
Grails tag output: 1,000.5 

Скажите мне ваши результаты

+0

Спасибо за ваш ответ, но это не решило мою проблему. Я изменил некоторые части своего кода с помощью кода, который вы предложили, но результат тот же. Я разрабатываю приложение для области добычи, поэтому мне приходится иметь дело в основном с числами, много цифр, поэтому для изменения каждого кода строки, в котором обрабатывается число, будет также много работать. Вот почему я ищу способ (если это возможно) установить формат номера по умолчанию для моего приложения. Кстати, код, который я использую, - это код, который был автоматически сгенерирован. –

+0

Grails tags (g: ..) форматирует числа перед выводом на html в соответствии с вашими настройками локали. Вы можете изменить настройки языкового стандарта, чтобы изменить формат вывода. Или, если вы хотите, чтобы полный контроль не использовал теги grails, но упрощал выходные значения. См. Дополнение anwer –

+0

Это работает, хотя я уже пробовал это. Проблема в том, что я должен изменить многие строки кода в своих представлениях, чтобы они правильно работали с вычислениями. Я отказался (по крайней мере на данный момент), пытаясь удалить любое форматирование чисел. Но я нашел решение, я установил локаль по умолчанию для своего приложения, и я написал функцию JavaScript для удаления двоеточия (например: '12,345.60' -' 12345.60', потому что функция JavaScript 'parseFloat' возвращала' 12' вместо ' 12345.60'), и теперь все вычисления верны. –

Смежные вопросы