请教一个ecside中查询filter的问题
caryl
2007-03-16
我在使用ecside的时候,使用了extremeTable自带的filter功能(还是比较方便的,呵呵),现在遇到一个问题:
我对Limit的查询进行了扩展,比如对于数值型的列,可以输入 >20 代表查询大于20的数据。 通过p6spy可以看到查询的sql语句是正确的,可是ecside中的数据是空的。 我想可能是extremeTable自动过滤掉了吧?可有不知道在哪里设置,请fins大哥指点一下,呵呵。 |
|
fins
2007-03-17
“我想可能是extremeTable自动过滤掉了吧?可有不知道在哪里设置”
不明白你这里所说的设置是指什么 能不能把limit发来看看 谢谢 |
|
caryl
2007-03-18
是这样的:
我在DAO的基类中对ecside的Limit传入的FilterSet进行判断,如果有类似于">","<"的符号,就进行处理: ... if (fieldType == Integer.class) { if (op == '<') criteria.add(Restrictions.le((String) fieldName,Integer.parseInt(value))); ... } 我把table.filterable=true, 比如在表格的unitprice列的过滤条件中填写>10 看p6spy的输出如下: p6spy - select this_.id as id0_1_, this_.CATEGORY_ID as CATEGORY16_0_1_, this_.inventory as inventory0_1_, this_.unitprice as unitprice0_1_, this_.descn as descn0_1_, this_.name as name0_1_, this_.status as status0_1_, category2_.id as id1_0_, category2_.descn as descn1_0_, category2_.name as name1_0_ from Product this_ left outer join Category category2_ on this_.CATEGORY_ID=category2_.id where this_.type='book' and this_.unitprice>=10.0 limit 15 但是在表格中却没有记录。 如果不输入">"符号的时候是可以正确显示的。 Limit 用的是org.extremecomponents.table.limit.Limit; 刚开始用extremeTable,还请fins,多谢了! |
|
caryl
2007-03-19
还是没描述清楚吗?
请fins帮忙看看 |
|
fins
2007-03-19
你用的是 系统自带的limit?没有自己写 是吧?
那能不能把DAO发过来让我看看能 还有 对ecside的Limit传入的FilterSet进行判断 这个地方你具体是怎么做的 |
|
fins
2007-03-19
你给 ec:table加上 属性:
filterRowsCallback="limit" 然后再看一下效果 |
|
caryl
2007-03-19
加上 filterRowsCallback="limit" 就搞定了,多谢多谢!
|