0

私は grails の動的フォームを設計していますが、ウィジェットの制約を動的に設定できるかどうか疑問に思っていましたか?

4

1 に答える 1

1

ウィジェットの制約を設定することは、これを攻撃する方法ではありません。最も簡単な方法は、ビューまたはテンプレートの「if」タグを使用して、何らかの条件に基づいて表示するタグを選択することだと思います。例えば:

あなたが本を持っているとしましょう

class Book {

    String name

}

このクラスにGrailsgenerate-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 に答える