Bokeh CustomJS 回调将数据表列可见性更改为 True

问题描述 投票:0回答:1

我有一个多选小部件,当用户在小部件中选择一个选项时,我希望数据表更新并使所选列可见。所以本质上当 TableColumn.field= multi_choice.value 我想改变 TableColumn.visible= True

filtered_table_data=df[["Li","Be"]]

filtered_table_source= ColumnDataSource(data=filtered_table_data)

filtered_table_cols=[]

filtered_table_cols.append(TableColumn(field='Li', title='Li', width=750, visible=False))
filtered_table_cols.append(TableColumn(field='Be', title='Be', width=750,visible=False))
 
filtered_table=DataTable(source=filtered_table_source, columns=filtered_table_cols)

multi_choice = MultiChoice(value=[], options=df.columns[2:-1].tolist(), title='Select elements:')

callback2 = CustomJS(args=dict(multi_choice=multi_choice, filtered_table=filtered_table), code="""
    for (var i=0; i<filtered_table.columns.length; i++)
    {
     for (var j=0; j<multi_choice.value.length;j++)
     {
             if (filtered_table.columns[i].field==multi_choice.value[j])
             {
                 filtered_table.columns[i].visible=True;
             }
     }
    }
    filtered_table.change.emit()                
""")

multi_choice.js_on_change("value",callback2)

当我尝试运行上面的代码时,选择选项时没有任何反应,数据表仍为空

javascript python bokeh bokehjs
1个回答
0
投票

JS布尔类型区分大小写

filtered_table.columns[i].visible=True;

除此之外它看起来可行

© www.soinside.com 2019 - 2024. All rights reserved.