我希望能够“重置” data table 。我怎么做?

我为我的数据表定义了一个 on_change('selected', my_callback) 回调。回调函数具有以下签名:

def my_callback(self, attr, old, new):
    ...

但是,在调用 my_callback 处理程序后,我无法取消选择已选择的内容。

我试图操作 new['1d']old['1d'] 字典但没有成功。

取消选择数据表中的行并返回未选择任何内容的原始状态的正确方法是什么?

G-groups 上有一个 similar question 但没有答案。
谢谢

最佳答案

这是一个散景应用示例。我不知道你想做什么,因为你没有准确地发布你的代码。从源中取消选择或更改所选数据的关键是您需要替换整个对象,否则将不会注册更改。通过 javascript 回调可以实现完全相同的功能。

在此处查看相关示例,Bokeh: DataTable - how to set selected rows

from datetime import date
from random import randint
from bokeh.io import curdoc
from bokeh.layouts import widgetbox
from bokeh.models import ColumnDataSource
from bokeh.models.widgets import DataTable, DateFormatter, TableColumn, Button

output_file("data_table.html")

data = dict(
        dates=[date(2014, 3, i+1) for i in range(10)],
        downloads=[randint(0, 100) for i in range(10)],
    )
source = ColumnDataSource(data)

columns = [
        TableColumn(field="dates", title="Date", formatter=DateFormatter()),
        TableColumn(field="downloads", title="Downloads"),
    ]
data_table = DataTable(source=source, columns=columns, width=400, height=280)

def callback():
    source.selected = {'0d': {'glyph': None, 'indices': []},
                       '1d': {'indices': []},
                       '2d': {'indices': {}}}

button = Button(label="Reset all selected cells", button_type="success")
button.on_click(callback)

curdoc().add_root(widgetbox(data_table,button))

关于python bokeh取消选择数据表行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46040998/

10-12 17:25
查看更多