Как вывести данные из Datatable Flet
Может кто знает и подскажет как в Flet получить все данные из DataTable?
self.table = DataTable(
bgcolor="white",
border_radius=5,
column_spacing=5,
heading_row_color='#FAEBD7',
# data_row_color='red',
columns=[
DataColumn(
Text("Заголовок1"),
on_sort=lambda e: print(f"{e.column_index}, {e.ascending}"),
),
DataColumn(
Text("Заголовок 2"),
on_sort=lambda e: print(f"{e.column_index}, {e.ascending}"),
),
],
rows=[]
)
Ответы (1 шт):
Нужно обратиться к элементу DataTable и взять значение атрибута columns, в который ты должен передать элемент DataColumn, и rows, в который ты должен передать элемент DataRow.
А DataColumn имеет атрибут label, в который ты передаёшь другой элемент.
А значение передаваемого элемента - в его атрибуте (этот атрибут, у каждого элемента по-разному). В твоём случае value (Потому что ты передал в label элемент Text).
А DataRow имеет атрибут cells, в который есть атрибут DataCell, который имеет атрибут content. В который ты передаёшь другой элемент, в большинстве случае это Text.
А значение передаваемого элемента в его атрибуте (value, если Text).
В принципе, ничего сложного, просто надо читать документацию.
Если в таблице нет ничего кроме текста (без иконок, фото, кнопок и т.д. и т.п.), то код будет примерно таким:
#Получить столбцы таблицы
for i in table.columns:
print(i.label.value)
#Получить строки таблицы
for rows in table.rows:
for cells in rows.cells:
print(cells.content.value)