我希望单击或 Select 表中的单个行,检索相应行的数据,然后使用处理程序进一步处理它.但目前的文档还很少,而且我以前从未使用过Quasar或Vue.js.

以下是我的try :

from nicegui import ui

columns = [
    {'name': 'title', 'label': 'Title', 'field':'title', 'required': True, 'align': 'left'},
    {'name': 'author', 'label': 'Author', 'field':'author', 'align': 'left'},
    {'name': 'year', 'label': 'Year', 'field':'year', 'sortable': True, 'align': 'left'},
]

rows = [
    {'title': 'Some title A', 'url' : 'https://example.com/search?q=A', 'author': 'Alice', 'year': 2023},
    {'title': 'Some title B', 'url' : 'https://example.com/search?q=B', 'author': 'Bob', 'year': 2022},
    {'title': 'Some title C', 'url' : 'https://example.com/search?q=C', 'author': 'Carol', 'year': 2021}
]
table = ui.table(title='Example table', columns=columns, rows=rows, row_key='name', pagination=5,
                selection='single',  on_select=lambda e: ui.notify(e.selection))
table.add_slot('body', r'''
    <q-tr :props="props" @row-click="rowClick">
        <q-td>
            <a :href="props.row.url">{{ props.row.title }}</a>
        </q-td>
        <q-td>{{ props.row.author }}</q-td>
        <q-td>{{ props.row.year }}</q-td>
    </q-tr>
    ''')
table.on('rowClick', lambda *args: print(args), [None, None, None]) # c.f. nicegui issues #664, #672, #1095

ui.run()

上面的代码不起作用.没有例外,但如果我单击行,则不会发生任何事情(并且不会显示用于 Select 行的复选框;我可能在使用模板时无意中禁用了它们).

如果我必须 Select ,我更愿意处理一个点击事件.

推荐答案

以下是一个有效的示例表:

table = ui.table(title='Example table', columns=columns, rows=rows, row_key='title', pagination=5, selection='single')
table.add_slot('body-cell-title', r'<td><a :href="props.row.url">{{ props.row.title }}</a></td>')
table.on('rowClick', lambda e: print(e.args))

看起来您的Body模板 destruct 了行-点击事件,但我不能100%确定.无论如何,使用"Body-cell-title"槽,您不需要为整个正文编写模板,而只需要为"标题"单元格编写模板.

请注意,在使用筛选器和 Select 等功能时,row_key应该将列名与唯一值相匹配.这里我用的是"标题".

Python相关问答推荐

计算每月过go x年的平均值

如何在Python中按组应用简单的线性回归?

绘制系列时如何反转轴?

pandas DataFrame中类型转换混乱

机器人与Pyton Minecraft服务器状态不和

如何用symy更新分段函数

如何计算列表列行之间的公共元素

Python Hashicorp Vault库hvac创建新的秘密版本,但从先前版本中删除了密钥

Pythind 11无法弄清楚如何访问tuple元素

将DF中的名称与另一DF拆分并匹配并返回匹配的公司

使用新的类型语法正确注释ParamSecdecorator (3.12)

如何在Python中将returns.context. DeliverresContext与Deliverc函数一起使用?

处理(潜在)不断增长的任务队列的并行/并行方法

按列分区,按另一列排序

切片包括面具的第一个实例在内的眼镜的最佳方法是什么?

Polars:用氨纶的其他部分替换氨纶的部分

Python—从np.array中 Select 复杂的列子集

对象的`__call__`方法的setattr在Python中不起作用'

用渐近模计算含符号的矩阵乘法

为什么'if x is None:pass'比'x is None'单独使用更快?