通过toString()过滤Grails easygrid插件

时间:2014-02-18 15:22:22

标签: grails gorm

我正在使用grails easygrid插件。

ownerGrid {
            dataSourceType 'gorm'
            domainClass Owner
            gridImpl 'dataTables'
            fixedColumns true
            columns {
                room
                { label "owner.room.label" 
                    type 'text'
                    value {owner->owner.room.toString()}
                    filterClosure { filter ->
                        room {
                                ilike(...., "%${filter.paramValue}%")
                        }
                    }
                }

我不太了解如何在grails中构建标准,但我想比较房间类的toString()值。

我怎样才能做到这一点?

由于

2 个答案:

答案 0 :(得分:1)

我认为房间' domain对象有某种name属性(你可以在toString方法中使用它)。

或者,如果它更复杂,您可能会从2列或更多列生成toString。在这种情况下,您可以使用:Gorm derived properties。让我们称之为派生属性:' derivedName'。这就是你的网格的样子:

    ownerGrid {
        dataSourceType 'gorm'
        domainClass Owner
        gridImpl 'dataTables'
        fixedColumns true
        columns {
            room {
                label "owner.room.label"
                type 'text'
                property owner.room.derivedName
                filterClosure { filter ->
                    room {
                        ilike('derivedName', "%${filter.paramValue}%")
                    }
                }
            }
        }
    }

答案 1 :(得分:0)

它不起作用...除非您将toString()方法的输出保存在Owner DC的额外属性中,以便您可以针对它发出查询。 虽然在很多方面都是个坏主意