我正在做一个CRUD,我想使用AlertDialog编辑DataTable中的数据,但我只是让AlertDialog在没有数据的情况下加载,我给你留下了一个图像和代码,希望得到及时的帮助或建议,谢谢。
import flet as ft
from flet import *
def main(page: ft.Page):
codpro = TextField(label="CÓDIGO PRODUCTO")
nompro = TextField(label="NOMBRE PRODUCTO")
#combo de categoria
ddcate = ft.Dropdown(label="CATEGORIA",
width=150,
options=[
ft.dropdown.Option("dulce"),
ft.dropdown.Option("salado"),
],
)
#combo de peso
ddpeso = ft.Dropdown(label="PESO",
width=100,
options=[
ft.dropdown.Option("KG"),
ft.dropdown.Option("G"),
],
)
#DATATABLE
tablaproducto = DataTable(
#CABECERA DE LAS CALUMNAS
columns=[
DataColumn(Text("CÓDIGO")),
DataColumn(Text("PRODUCTO")),
DataColumn(Text("CATEGORÍA")),
DataColumn(Text("PESO")),
DataColumn(Text("ACCIONES")),
],
#FILAS
rows=[]
)
#FUNCION ELIMINAR
def eliminar(e):
tablaproducto.rows.remove(tablaproducto.rows[0])
#MENSAJE con Barra inferior
page.snack_bar = SnackBar(
Text("SE ELIMINO DATO", size = 30),
bgcolor = "red",
duration= 500,
)
page.snack_bar.open = True
#FIN DEL MENSAJE inferior
page.update()
#FUNCION GUARDAR
def guardar(e):
pass
# Crear Dialog
dialog = AlertDialog(
title=Text("Editar datos"),
content=Column([
nompro,
ddcate,
ddpeso,
]),
actions=[
TextButton("Guardar",
on_click=guardar
)
]
)
#Funcion EDITAR
def editar(e):
tablaproducto.rows[nompro.value].cells[1].content = TextField(nompro.value)
page.dialog = dialog
dialog.open = True
page.update()
#FUNCION para AGREGAR
def agregar(e):
tablaproducto.rows.append(
DataRow(
cells=[
DataCell(Text(codpro.value)),
DataCell(Text(nompro.value)),
DataCell(Text(ddcate.value)),
DataCell(Text(ddpeso.value)),
DataCell(
Row([
IconButton("delete",
icon_color ="red",
on_click = eliminar,
),
IconButton("create",
icon_color ="red",
on_click = editar,
),
])
),
]
)
)
#MENSAJE con Barra inferior
page.snack_bar = SnackBar(
Text("DATO INGRESADO", size = 30),
bgcolor = "green",
duration= 500,
)
page.snack_bar.open = True
#FIN DEL MENSAJE
#Limpiar los controles
codpro.value = ""
nompro.value = ""
ddcate.value = ""
ddpeso.value = ""
page.update()
#Boton AGREGAR
BtnAgregar = ElevatedButton(
text="Agregar",
bgcolor="blue",
color="white",
on_click=agregar
)
page.add(
Column([
Text("PRODUCTOS",size=30,weight="bold"),
codpro, nompro,ddcate, ddpeso,
Row([BtnAgregar]),
tablaproducto
])
)
ft.app(target=main)
enter image description here
给我留言,帮帮我。
tablaproducto.rows[nompro.value].cells[1].content = TextField(nompro.value)TypeError:列表索引必须是整数或切片,而不是str
任何想法或任何人都有一个example。我希望你能及时帮助我
1条答案
按热度按时间brgchamk1#
我能够通过创建新的控件来从DataTable中检索数据来解决数据编辑问题但它只对我适用于一个记录,当我添加2个或更多记录时,它总是从第一个记录返回数据我分享代码,一些建议我可以解决这个问题我与他们分享代码
报警对话框
功能编辑