从 row.clicked 事件获取行元素

2024-01-30

我正在使用 Bootstrap Vue 中的表格,并且尝试在单击行时显示行详细信息。

I used row-clicked正如文档所说的事件,但我没有找到任何带有toggleDetails方法。 所以我什至不知道如何打开它以及在哪里toggleDetails来自。

有一种方法可以打开此详细信息行row.clicked event ?

或者我应该使用另一种方法来做到这一点?

你有一些线索吗?

EDIT

有一些代码可以更多地说明我的问题,有我的带有详细信息行的表格。

<b-table
  v-if="items"
  :items="items"
  :fields="fields"
  show-empty
  striped
  hover
  responsive
  empty-text="There is no messages to show"
  class="col-sm-12 col-md-10"
  @row-clicked="test"
>
  <template
    slot="message"
    slot-scope="row"
  >
    {{ row.item.message }}
  </template>
  <template
    slot="row-details"
    slot-scope="row"
  >
    <code>{{ row.item.message }}</code>
  </template>
</b-table>

您可以看到row.clicked我在表上使用的事件,然后是我尝试打开行详细信息的方法。这是一个带有一些 console.log 的简单方法

methods: {
  test(item, index, event) {
    console.log(item, index, event);
  },
},

您所要做的就是将其放置在“基”行中的某个位置(可能位于名为的行单元格中)actions)一个调用的按钮toggleDetails该特定行的函数。

该按钮和详细信息行的代码应如下所示:

<template slot="actions" slot-scope="row">
    <!-- We use @click.stop here to prevent a 'row-clicked' event from also happening -->
    <b-button size="sm" @click.stop="row.toggleDetails">
        {{ row.detailsShowing ? 'Hide' : 'Show' }} Details
    </b-button>
</template>
<template slot="row-details" slot-scope="row">
    <!-- Your row details' content here -->
</template>

您可以在中找到更多示例和解释文档 https://bootstrap-vue.js.org/docs/components/table/#row-details-support

如果您想通过单击行中的任意位置来显示行详细信息,首先您应该添加_showDetails每个项目对象的变量:

items: [
    { foo: true, bar: 40, _showDetails: false },
    ...
    { foo: true, bar: 100, _showDetails: false }
]

然后您只需为行单击事件添加适当的功能:

<b-table @row-clicked="onRowClicked" ...></b-table>

在你的组件方法中:

methods: {
    onRowClicked (item, index, event) {
        item._showDetails = !item._showDetails;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 row.clicked 事件获取行元素 的相关文章

随机推荐