Bokeh TableData on_change选择了两次调用的事件

时间:2016-11-08 08:17:50

标签: python datatable event-handling bokeh

我有一个带有Select,DataTable和Button的Bokeh UI。

  • 选择允许直接转到DataTable中的给定行
  • 按钮允许转到DataTable的下一行
  • DataTable允许直接选择单行(因此更新选择)。

DataTable通过以下方式跟踪选择更改事件:

self.__table_data.on_change('selected',self.table_selection_change)

单击按钮时,我使用新的字典结构更改了DataTable源的选定属性,如here所示:

self.__table_data.selected = {'2d': {'indices': []}, '1d': {'indices': [my_new_index]}, '0d': {'indices': [], 'glyph': None}}

问题是,当我进行此更新时,我的回调(table_selection_change)被调用两次,而我只期望一次调用。

1 个答案:

答案 0 :(得分:1)

问题是整个dict不应该更新。只有相关的密钥必须更新。

更换

self.__table_data.selected = {'2d': {'indices': []}, '1d': {'indices': [my_new_index]}, '0d': {'indices': [], 'glyph': None}}

通过

self.__table_data.selected['1d'] = {'indices':[my_new_index]}

解决了这个问题。