如何在 Quasar / Vue 中将自定义 Table Header 正确绑定到数据
How can I Bind a Custom Table Header to the Data correctly in Quasar / Vue
我正在尝试覆盖类星体中的标准航向 table。主要是因为我需要一个堆叠的 header(2 行带有 colspans/rowspans)。我可以让它看起来正确,但我不能让它表现得像一个正确的 table header - 主要是它不会排序。我已经尝试了几种方法来声明性地绑定它。
<q-table
:data="data"
:columns="columns"
row-key="name" class="col-12">
<template v-slot:header="props">
<q-tr :props="props">
<q-th rowspan="2" >Sku</q-th>
<q-th rowspan="2">Name</q-th>
<q-th colspan="3" style="text-align:center">Sales</q-th>
<q-th rowspan="2" style="text-align:center">Order</q-th>
<q-th colspan="3" style="text-align:center">Before Order</q-th>
<q-th colspan="3" style="text-align:center">After Order</q-th>
<q-th colspan="3" style="text-align:center">Order</q-th>
</q-tr>
<q-tr :props="props">
<q-th>Qty</q-th>
<q-th>Count</q-th>
<q-th>Daily</q-th>
<q-th>Stock</q-th>
<q-th>Days</q-th>
<q-th>Date</q-th>
<q-th>Stock</q-th>
<q-th>Days</q-th>
<q-th>Date</q-th>
<q-th>Price</q-th>
<q-th>Discount</q-th>
<q-th>Total</q-th>
</q-tr>
</template>
</q-table>
重构了代码并添加了键和单独的道具以与键 'name' 一起传递给每个 headers,现在它按预期工作
这里的工作代码沙箱:https://codesandbox.io/s/codesandbox-app-edivz
实时页面 URL:https://edivz.sse.codesandbox.io/purchase-orders
<q-table
:data="data"
:columns="columns"
row-key="name" class="col-12">
<template v-slot:header="props">
<q-tr>
<q-th :props="props" key="sku" rowspan="2" >Sku</q-th>
<q-th :props="props" key="name" rowspan="2">Name</q-th>
<q-th colspan="3" style="text-align:center">Sales</q-th>
<q-th :props="props" key="Qty" rowspan="2" style="text-align:center">Order</q-th>
<q-th colspan="3" style="text-align:center">Before Order</q-th>
<q-th colspan="3" style="text-align:center">After Order</q-th>
<q-th colspan="3" style="text-align:center">Order</q-th>
</q-tr>
<q-tr>
<q-th :props="props" key="SalesQty">Qty</q-th>
<q-th :props="props" key="SalesCount">Count</q-th>
<q-th :props="props" key="DailySales">Daily</q-th>
<q-th :props="props" key="BeforeOrderQty">Stock</q-th>
<q-th :props="props" key="BeforeOrderDays">Days</q-th>
<q-th :props="props" key="BeforeOrderDate">Date</q-th>
<q-th :props="props" key="AfterOrderQty">Stock</q-th>
<q-th :props="props" key="AfterOrderDays">Days</q-th>
<q-th :props="props" key="AfterOrderDate">Date</q-th>
<q-th :props="props" key="Price">Price</q-th>
<q-th :props="props" key="Discount">Discount</q-th>
<q-th :props="props" key="Total">Total</q-th>
</q-tr>
</template>
</q-table>
我正在尝试覆盖类星体中的标准航向 table。主要是因为我需要一个堆叠的 header(2 行带有 colspans/rowspans)。我可以让它看起来正确,但我不能让它表现得像一个正确的 table header - 主要是它不会排序。我已经尝试了几种方法来声明性地绑定它。
<q-table
:data="data"
:columns="columns"
row-key="name" class="col-12">
<template v-slot:header="props">
<q-tr :props="props">
<q-th rowspan="2" >Sku</q-th>
<q-th rowspan="2">Name</q-th>
<q-th colspan="3" style="text-align:center">Sales</q-th>
<q-th rowspan="2" style="text-align:center">Order</q-th>
<q-th colspan="3" style="text-align:center">Before Order</q-th>
<q-th colspan="3" style="text-align:center">After Order</q-th>
<q-th colspan="3" style="text-align:center">Order</q-th>
</q-tr>
<q-tr :props="props">
<q-th>Qty</q-th>
<q-th>Count</q-th>
<q-th>Daily</q-th>
<q-th>Stock</q-th>
<q-th>Days</q-th>
<q-th>Date</q-th>
<q-th>Stock</q-th>
<q-th>Days</q-th>
<q-th>Date</q-th>
<q-th>Price</q-th>
<q-th>Discount</q-th>
<q-th>Total</q-th>
</q-tr>
</template>
</q-table>
重构了代码并添加了键和单独的道具以与键 'name' 一起传递给每个 headers,现在它按预期工作
这里的工作代码沙箱:https://codesandbox.io/s/codesandbox-app-edivz
实时页面 URL:https://edivz.sse.codesandbox.io/purchase-orders
<q-table
:data="data"
:columns="columns"
row-key="name" class="col-12">
<template v-slot:header="props">
<q-tr>
<q-th :props="props" key="sku" rowspan="2" >Sku</q-th>
<q-th :props="props" key="name" rowspan="2">Name</q-th>
<q-th colspan="3" style="text-align:center">Sales</q-th>
<q-th :props="props" key="Qty" rowspan="2" style="text-align:center">Order</q-th>
<q-th colspan="3" style="text-align:center">Before Order</q-th>
<q-th colspan="3" style="text-align:center">After Order</q-th>
<q-th colspan="3" style="text-align:center">Order</q-th>
</q-tr>
<q-tr>
<q-th :props="props" key="SalesQty">Qty</q-th>
<q-th :props="props" key="SalesCount">Count</q-th>
<q-th :props="props" key="DailySales">Daily</q-th>
<q-th :props="props" key="BeforeOrderQty">Stock</q-th>
<q-th :props="props" key="BeforeOrderDays">Days</q-th>
<q-th :props="props" key="BeforeOrderDate">Date</q-th>
<q-th :props="props" key="AfterOrderQty">Stock</q-th>
<q-th :props="props" key="AfterOrderDays">Days</q-th>
<q-th :props="props" key="AfterOrderDate">Date</q-th>
<q-th :props="props" key="Price">Price</q-th>
<q-th :props="props" key="Discount">Discount</q-th>
<q-th :props="props" key="Total">Total</q-th>
</q-tr>
</template>
</q-table>