You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过JustPy为AG-Grid设置列数字格式?

JustPy中AG-Grid valueFormatter配置问题解决思路

问题背景

  • 已通过JustPy成功渲染AG-Grid,但AG-Grid文档中的valueFormatter箭头函数(如valueFormatter: params => params.data.number.toFixed(2))无法直接转换为JustPy网格组件可识别的字符串格式。
  • 当前代码里cellClass和cellClassRules的样式逻辑正常生效,但valueFormatter完全不起作用,数字未按预期格式化。

后续困惑

感谢@thirtydot的建议指引,但仍有疑问:

  • getDataPath是单个待评估项,而我需要处理的是columnDefs下的多个valueFormatter函数,每个字段都有独立的columnDefs和valueFormatter属性。
  • 是需要评估整个ColumnDefs,还是仅针对valueFormatter?
  • 能否像代码中那样通用设置grid.evaluate = ['valueFormatter'],还是必须逐个指定路径(如evaluate['columnDefs[9]'])?

现有代码示例

def grid_test1():
    wp = jp.WebPage()
    grid = ooi.jp.ag_grid(a=wp)  # a=wp 用于将网格添加到WebPage实例wp
    grid.theme = "ag-theme-balham-dark"
    grid.options.columnDefs[0].cellClass = ['text-white', 'bg-blue-500', 'hover:bg-blue-200']
    grid.options.columnDefs[9].valueFormatter = {'''function(params) { '$' + formatNumber(params.value); }'''}
    grid.options.columnDefs[15].valueFormatter = {'''function(params) { params.data.number.toFixed(2); }'''}
    for col_def in grid.options.columnDefs[1:]:
        col_def.cellClassRules = {
            'font-bold': 'x < 20',
            'bg-red-300': 'x < 20',
            'bg-yellow-300': 'x >= 20 && x < 50',
            'bg-green-300': 'x >= 50'
        }
    grid.evaluate = ['valueFormatter']    
    return wp

问题修复要点

  1. 移除多余的集合包装:给valueFormatter赋值时用了{'''function(...) {...}'''},这会将函数字符串包装成集合,导致JustPy无法正确解析。直接使用字符串赋值即可:
    grid.options.columnDefs[9].valueFormatter = '''function(params) { return '$' + formatNumber(params.value); }'''
    grid.options.columnDefs[15].valueFormatter = '''function(params) { return params.data.number.toFixed(2); }'''
    
  2. 补充return语句:JavaScript函数必须明确返回值,原函数缺少return,导致格式化后的结果无法传递给AG-Grid。
  3. evaluate属性配置正确:
    • 无需逐个指定columnDefs[9]这类路径,只需将valueFormatter加入grid.evaluate列表,JustPy会自动遍历所有columnDefs中的valueFormatter字段,在前端解析为可用的JavaScript函数。
    • 当前代码中grid.evaluate = ['valueFormatter']的配置是正确的,不需要修改。

修改后,valueFormatter会被正确解析为前端可执行的函数,数字将按预期格式化,同时cellClassRules的条件格式依然正常生效。

内容的提问来源于stack exchange,提问作者Brandon Bettencourt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 23:35:21