【问题标题】:SmartGWT LiveGrid unable to apply style to grid records programmaticallySmartGWT LiveGrid 无法以编程方式将样式应用于网格记录
【发布时间】:2012-02-07 00:24:32
【问题描述】:

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

要求: 我希望根据我从服务器发送的记录属性之一的值设置记录基本样式(或自定义样式)。 为了做到这一点,我尝试了 DataArrivedHandler,在其中迭代可用的行,使用行号从网格中获取 ListGridRecord,并使用 gridRecord.set_baseStyle(String stylename) 或 gridRecord.setCustomStyle(String stylename) 尝试并为该记录应用灰色的 CSS。在此之后,我调用了 grid.markForRedraw(),但是没有任何效果。未应用 CSS。

我必须提到,我已经非常成功地使用相同的 css 将普通 listGrid(无数据源)上的行变灰。

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

【问题讨论】:

  • 看看 Hilite,您可以为您的 ListGrid 设置一个条件 hilites 数组,并且每次记录填充条件时,它将应用 hilite 的 css。
  • 我会和@gpapaz 小费一起试试这个,然后回复所有人。

标签: smartgwt


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2012-12-04
    • 2019-02-23
    • 2021-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多