首页 > 解决方案 > Python Dash数据表:行选择不起作用

问题描述

嘿那里!这是我的桌子的样子。 我的 Dash 代码输出

我想在 python 控制台中打印所选行的 NGID 值。我创建了回调函数。但是当我选择行时它什么都不做

这是我的布局代码:

 def dasher():
             df = pd.read_csv('wyjebany.csv')

             df = df[~df.HOME.str.contains('Beach|Futsal')]
             df = df[~df.COUNTRY.str.contains('Germany Oberliga NOFV|France  Youth U19 
                       League|Portugal Champions NACIONAL Juniores A 1|Spanish Bizkaia-Tercera')]
            df = df.replace(to_replace='Division|League|Liga|Footbal|Primavera', value='', 
                       regex=True)
                       # df = df.replace(to_replace='.', value='', regex=True)
            print(df)
            print(df.columns)

           app.layout = dash_table.DataTable(

                            columns=[{"name": i, "id": i} for i in df.columns],
                           row_selectable='multi',
                           sort_action='native',
                          # editable=True,
                          row_deletable=True,
                         # rows=[{}],
                         selected_rows=[],

                       css=[{'selector': 'tr:hover',
                       'rule': 'background-color:  #80FF80',
                            # 'font-family': 'Times New Roman',

                                   }],
                     html.Div(id='hidden-div', style={'display': 'none'},
             ),

这是回调函数的代码

@app.callback(
dash.dependencies.Output('hidden-div', 'style'),
[dash.dependencies.Input('table', 'columns'),
dash.dependencies.Input('table', 'selected_rows')])
def print_value(columns,selected_rows):
     print("Hi i am triggered")
     # for i in selected_rows:
     #     print(i)
     selected_rows = [columns[i] for i in selected_rows]
     # selected_rows = pd.DataFrame(rows).iloc[i]
     print(selected_rows)
     style = {'display': 'none'}
     return style

标签: python-3.xdatatableplotlydashboardplotly-dash

解决方案


使用derived_virtual_selected_rows而不是selected_rows.

它对我有用


推荐阅读