Grails - как скрыть дату внутри формы - PullRequest
0 голосов
/ 09 июня 2011

У меня есть «редактировать» представление для модели, которая имеет несколько полей (одно из которых является датой).Я хочу, чтобы только некоторые из полей были видимыми, чтобы разрешить редактирование, поэтому я просто скрываю другие поля, используя <g:hiddenField>

Но одно из полей имеет тип TimeStamp, и я не могу найти способскрыть это в форме.Я пытался

<g:form method="post" >
    <g:textField name="firstName" value="${applicationUserInstance?.firstName}" />
    <g:textField name="lastName" value="${applicationUserInstance?.lastName}" />
    <g:datePicker name="createDate" style="visibility:hidden;" precision="day" value="${applicationUserInstance.createDate}" />

Выбор даты все еще виден.Любая идея, как скрыть дату, чтобы я мог просто передать это методу обновления после отправки формы.Большое спасибо.

Ответы [ 2 ]

4 голосов
/ 09 июня 2011

Просто повторим комментарий Роба здесь.Не нужно указывать это в форме.В форме вам нужны только данные, которые вы обновляете, и идентификатор того, что обновляется.Все остальное останется прежним ...

def update = {
    def applicationUserInstance = User.get(param.id)
    // at this point applicationUserInstance.createDate is
    // correct.
    applicationUserInstance.properties = params
    // since no createDate was in the params, it doesn't change.
    // so you're good
    applicationUserInstance.save(flush:true)
}
1 голос
/ 09 июня 2011

На самом деле мой ответ ниже не может быть правильным ответом на ваш вопрос. В противном случае, если у вас действительно есть поле createDate, которое должно отслеживать, когда запись была создана в базе данных, я предлагаю вам сделать это Grails-way и использовать зарезервированные ключевые слова 'dateCreated' и 'lastUpdated'

Проверка http://grails.org/doc/1.3.7/guide/5.%20Object%20Relational%20Mapping%20(GORM).html#5.5.1 События и автоматическая отметка времени о том, как использовать это. Если вы используете их, мой ответ ниже будет полезен для контроля видимости этих полей 'dateCreated', 'lastUpdated'

Предложения для dateCreated, lastUpdated

Возможно, вы хотите, чтобы эта временная метка создавалась автоматически, как вы нашли ее в документации Grails, но вы не хотите, чтобы она была видна в вашем представлении.

Теперь, чтобы исключить эту временную метку из видимого состояния, сначала grails install-templates

Я полагаю, у вас есть Grails-1.3.7

  • Перейдите в src / templates / scaffolding и проверьте ваши gsp-файлы, например, «создать» и «редактировать»
  • Поиск по этой строке:

<% excludedProps = ["version", "id",

и отредактируйте, например, 'dateCreated'

<% excludedProps = ["dateCreated", "version", "id",

На эту тему также есть учебник http://www.ibm.com/developerworks/java/library/j-grails01209/index.html

Привет

Jan

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...