Bokeh DataTable选择时触发事件

时间:2016-08-18 18:35:06

标签: python bokeh

当我选择散景DataTable的一行(或多行)时,是否可以触发回调事件?

def update(rows):
   ...

dt = DataTable(...)
dt.on_select(update)

我看到有一个.on_change方法可以触发特定属性,但我找不到与所选行对应的属性。

2 个答案:

答案 0 :(得分:7)

Birdarah的上述回答在bokeh版本0.12.16之前是正确的,但是从bokeh版本0.13开始,您需要稍微更改on_change方法以使其起作用:

source = ColumnDataSource(mpg)
columns = [....]
data_table = DataTable(source=source, columns=columns)

def callback(attrname, old, new):
    selectionIndex=source.selected.indices[0]
    print("you have selected the row nr "+str(selectionIndex))
source.selected.on_change('indices', callback)

答案 1 :(得分:6)

我认为选择一行数据表与在数据源上进行选择相同。因此,如果您将回调连接到为表提供电源的数据源,那么回调应该可以正常工作。

source = ColumnDataSource(mpg)
columns = [....]
data_table = DataTable(source=source, columns=columns)
source.on_change('selected', callback)