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

在Streamlit与Ag-Grid中根据另一列值设置列背景色问题排查

问题排查与修复

你的代码无法运行的核心问题是在JS代码中错误使用了Python的DataFrame语法,Ag-Grid的JS回调函数需要通过params.data来访问当前行的完整数据,而不是直接调用Python的df对象。另外还有一处变量名拼写错误(cellsytle_jscode应为cellstyle_jscode)。

修正后的代码

cellstyle_jscode = JsCode("""
function(params) {
    // 通过params.data获取当前行的Header B列值
    if (params.data['Header B'] === 'yes') {
        return {
            'color': 'white',
            'backgroundColor': 'green'
        }
    } else {
        return {
            'color': 'black',
            'backgroundColor': 'red'
        }
    }
};
""") 

gb.configure_column("Header A", cellStyle=cellstyle_jscode)

关键修正点

  • 替换df['Header B'].value为params.data['Header B']:Ag-Grid的JS回调中,params对象包含当前单元格的上下文信息,params.data对应整行的数据记录,直接通过列名即可获取对应值。
  • 修正变量名拼写:cellsytle_jscode改为cellstyle_jscode,避免因变量名错误导致的引用失败。
  • 建议使用===严格相等判断:JS中===会同时校验值和类型,比==更严谨,避免潜在的类型匹配问题。

内容的提问来源于stack exchange,提问作者Miguel Gonzalez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 10:12:31