0

我正在为 grails 设计动态表单,我想知道是否可以动态设置小部件约束?

4

1 回答 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 回答