我正在为 grails 设计动态表单,我想知道是否可以动态设置小部件约束?
问问题
84 次
1 回答
1
设置小部件约束不是解决这个问题的方法。我想最简单的方法是在视图或模板中使用“if”标签根据某些条件选择要显示的标签。例如:
假设你有一本书
class Book {
String name
}
如果你对这个类使用 Grails generate-view,Grails 将生成一个名为 _form 的模板,如下所示:
<div class="fieldcontain ${hasErrors(bean: bookInstance, field: 'name', 'error')} ">
<label for="name">
<g:message code="book.name.label" default="Name" />
</label>
<g:textField name="name" value="${bookInstance?.name}"/>
</div>
您可以在此表单中测试您的状况并更改视图:
<div class="fieldcontain ${hasErrors(bean: bookInstance, field: 'name', 'error')} ">
<label for="name">
<g:message code="book.name.label" default="Name" />
</label>
<g:if test="$yourCondition">
<g:textField name="name" value="${bookInstance?.name}"/>
</g:if>
<g:else>
<g:textArea name="name" value="${bookInstance?.name}"/>
</g:else>
</div>
现在视图将显示基于 $yourCondition 的 textField 或 textArea 字段。
于 2012-11-27T15:26:11.347 回答