2012-02-06 48 views
0

我正在使用SmartGWT 2.5,特别是由RESTDataSource支持的ListGrid。 服务器集成是通过一个servlet实现的,我只需要实现fetchData()。数据是在服务器端填充的List<Map<String, Object>>,转换为JSON并在DSResponse中发送。由数据源支持的Live网格通过grid.fetchData()方式以编程方式触发服务器提取。SmartGWT LiveGrid无法以编程方式将样式应用于网格记录

要求: 我希望根据从服务器发送的记录属性值之一来设置记录基础样式(或自定义样式)。 为了做到这一点,我尝试了DataArrivedHandler,我遍历可用的行,使用行号从网格中获取ListGridRecord,并使用gridRecord.set_baseStyle(String stylename)或gridRecord.setCustomStyle(String stylename)尝试和应用灰色的CSS记录。在此之后,我调用grid.markForRedraw(),但不起作用。 CSS没有得到应用。

我必须提到,我已经使用相同的css来正常listGrid(无数据源)非常成功灰化行。

问题: 我的策略是正确的吗? 是否有另一种方法根据属性值将样式应用于记录。

+0

看看Hilite,你可以为你的ListGrid设置一个conditionnal hilites的数组,并且在一个记录中填充它将会应用hilite的css的条件。 – 2012-02-06 14:55:41

+0

我会与@gpapaz提示一起尝试此操作并重新开始。 – Shrinivas 2012-02-09 08:31:16

回答

0

您的策略是正确的,我已经在我的代码中成功实现了您所需的功能。确保您正确地获取记录,并确保其中存在测试属性。我建议一个JSON.encode(record.getJsObj())来查看你的记录实际上是用什么来填充的。不需要显式调用markForRedraw(),因为在DataArrivedEvent触发ListGrid之后,将重绘其视图。如果您需要更多帮助,请发布一小段代码片段。同样从Alain的评论中可以看出,亮点可能是另一个很好的选择。