ODK Dynamic从数据库中选择,如何处理空列表

时间:2015-08-31 09:30:27

标签: select odk

我有一个ODK表单,配置为从数据库中获取数据列表并使用select的数据列表。

问题是,当数据库中的查询返回空字符串时,我无法显示错误,而是在加载时ODK表单崩溃。我试过这个,

<instance id="books">
    <list>
        <g:if test="${Book.list()}">
            <g:each in="${Book.list()}" var="book">
                <book>
                    <id>${book.id}</id>
                    <name>${book.name?.encodeAsHTML()}</name>
                </book>
            </g:each>
        </g:if>
        <g:else>
            <book>
                <id></id>
                <name></name>
            </book>
        </g:else>
    </list>
</instance>

创建一个空id和空名称的xml。这可确保ODK在加载时不会崩溃。

但由于我不希望用户选择空的book选项,因此我在bind nodeset部分添加了约束,

<bind nodeset="/form/book" type="string" required="true()" constraint=". != ''" jr:constraintMsg="Book must be not be empty"/>

所以现在当用户试图通过书籍选择部分时,ODK表单不允许它,但是不是抛出我提供的约束消息而是抛出此错误

don't know xml value! perhaps selection was stored as index only and has not yet been linked up to a formdef?

0 个答案:

没有答案