8

我在数据中有一个 bootstrap-vue 表(b-table),我想让它的 'Id' 值可供稍后的事件访问,但我想从表渲染中隐藏它。

我想我看到了一种通过将“Id”绑定到 row.key 或 row.index 或一些此类 b 表属性来做到这一点的方法,但我在任何地方都找不到。

所以我在字段定义中包含了列值,但是我找不到隐藏列的方法。

该表如下所示:

                <b-table show-empty responsive striped hover small outlined :stacked="stack"
                     :items="DisplayViewData"
                     :fields="fields"
                     :sort-by.sync="sortBy"
                     :sort-desc.sync="sortDesc">
                <template slot="select" slot-scope="data">
                    <b-form-checkbox v-model="data.item.IsSelected"/>
                </template>
            </b-table>

字段定义如下:

       fields: Array<any> = [
        {key: 'Id',},
        {key: 'LastName', sortable: true},
        {key: 'FirstName', sortable: true},
        etc.....
    ];

但这意味着渲染了 Id 列。

有没有办法通过使“Id”列不可见或将 data.Id 值分配给其他一些 b 表行数据上下文来做我想做的事情?

4

3 回答 3

7

我对此的快速解决方案是这样的:

fields: Array<any> = [
        {key: 'Id', thClass: 'd-none', tdClass: 'd-none' },
        {key: 'LastName', sortable: true},
        {key: 'FirstName', sortable: true},
        etc.....
    ];

所以对于 Id 使用thClass: 'd-none', tdClass: 'd-none'

于 2018-07-26T15:00:23.050 回答
6

这类似于拉托维奇的回答,但使用.d-none

fields: Array<any> = [
    {key: 'Id', thClass: 'd-none', tdClass: 'd-none' },
    {key: 'LastName', sortable: true},
    {key: 'FirstName', sortable: true},
    etc.....
];

您要使用的原因.d-none是因为它已经内置在 Bootstrap 4 中。

请参阅:https ://getbootstrap.com/docs/4.1/utilities/display/

于 2018-07-26T15:10:43.713 回答
5

您需要做的就是不要将其包含在fields定义中。项目行数据仍然存在,并且可以通过其他字段的作用域插槽访问。

无需使用 CSS 类来隐藏列。

要通过另一个域范围的插槽(比如LastName插槽)访问值:

<b-table :fields-"fields" :items="items" ... >
  <template slot="LastName" slot-scope="{ value, item }">
    <!-- value is the field value -->
    {{ value }}
    <!-- item is the entire row object -->
    <!--you can use it for actions on buttons, etc -->
    <b-button @click="doSomthing(item.Id)">{{ item.Id }}</b-button>
  </template>
</b-table>
于 2019-07-09T01:09:53.167 回答