Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何高亮显示v表中的行( >= 2.0版本)?

如何高亮显示v表中的行( >= 2.0版本)?
EN

Stack Overflow用户
提问于 2019-08-13 23:39:50
回答 3查看 16.4K关注 0票数 9

我用v-data-table来管理电子邮件。用户可以单击一行并显示带有电子邮件详细信息的弹出窗口。

我想要的东西:

我希望在单击这些行之后,将行标记为"readed“(因此css粗体/非粗体)。

问题:

我已经在这里找到了一些例子(但只适用于较旧的Vuetify版本):Vuetify如何突出显示v-data表中单击的行

这个示例(以及我找到的所有其他示例)使用扩展代码来处理类似v-data-table的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<v-data-table :headers="headers" :items="desserts" class="elevation-1">
  <template v-slot:items="props">
    <tr @click="activerow(props.item)" :class="{'primary': props.item.id===selectedId}">
      <td>{{ props.item.name }}</td>
      <td class="text-xs-right">{{ props.item.calories }}</td>
      <td class="text-xs-right">{{ props.item.fat }}</td>
      <td class="text-xs-right">{{ props.item.carbs }}</td>
      <td class="text-xs-right">{{ props.item.protein }}</td>
      <td class="text-xs-right">{{ props.item.iron }}</td>
    </tr>
  </template>
</v-data-table>

因此扩展代码是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<template v-slot:items="props">
  <tr @click="activerow(props.item)" :class="{'primary': props.item.id===selectedId}">
    <td>{{ props.item.name }}</td>
    <td class="text-xs-right">{{ props.item.calories }}</td>
    <td class="text-xs-right">{{ props.item.fat }}</td>
    <td class="text-xs-right">{{ props.item.carbs }}</td>
    <td class="text-xs-right">{{ props.item.protein }}</td>
    <td class="text-xs-right">{{ props.item.iron }}</td>
  </tr>
</template>

但是,由于我使用的是Vutify版本2,所以

<template slot="headers" slot-scope="props"><template slot="items" slot-scope="props"><v-data-table>中似乎被忽略了。

Vuetify 2提供了一些新的插槽,但我还没有找到如何在这个示例中使用它们。

有谁能为>= 2.0提供一个例子吗?相信我,目前还没有更高版本可用的人--在CodePen或JSFiddle等任何开发环境中都没有。

EN

回答 3

Stack Overflow用户

发布于 2019-08-29 21:35:53

对我来说,它通过替换表体(v-slot:body)和手动定义trtd来与Vuetify 2.X一起工作。这有助于槽例的研究。

这样就可以添加click事件并设置css类,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<template v-slot:body="{ items }">
    <tbody>
      <tr v-for="item in items" :key="item.name" @click="selectItem(item)" :class="{'selectedRow': item === selectedItem}">
        <td>{{ item.name }}</td>
        <td>{{ item.age }}</td>
      </tr>
    </tbody>
</template>

(附带注意:这样您就不能再在v-data-table上使用事件v-data-table了。因为它不会因为覆盖这一行而被解雇.但是直接在@click上定义tr也很好。)

在方法selectItem中,我们将项保存在数据字段selectedItem中。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
data () {
  return {
    selectedItem: null,
    ...
  }
},
methods: {
    selectItem (item) {
      console.log('Item selected: ' + item.name)
      this.selectedItem = item
    }
}

我们在单击行时设置的CSS类。因此,背景更改和文本获得粗体

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<style scoped>
.selectedRow {
    background-color: red;
    font-weight: bold;
}
</style>
票数 10
EN

Stack Overflow用户

发布于 2019-08-14 11:04:00

我添加了接收项的方法selectRow,并向其添加了isSelected属性。然后,在template中,如果item有属性isSelected,则分配类.primary

注意到:此方法还从前面选定的项中移除isSelected属性。这样只能同时突出显示一个<tr>

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
new Vue({
  el: "#app",
  methods: {
    selectRow(item) {
      // remove isSelected from already selected item
      // const prevItem = this.desserts.find(dessert => dessert.isSelected);
      // if (prevItem) this.$delete(prevItem, 'isSelected');
      this.$set(item, "isSelected", true)
    }
  },
  data() {
    return {
      headers: [{
          text: 'Dessert (100g serving)',
          align: 'left',
          sortable: false,
          value: 'name'
        },
        {
          text: 'Calories',
          value: 'calories'
        },
        {
          text: 'Fat (g)',
          value: 'fat'
        },
        {
          text: 'Carbs (g)',
          value: 'carbs'
        },
        {
          text: 'Protein (g)',
          value: 'protein'
        },
        {
          text: 'Iron (%)',
          value: 'iron'
        }
      ],
      desserts: [{
          name: 'Frozen Yogurt',
          calories: 159,
          fat: 6.0,
          carbs: 24,
          protein: 4.0,
          iron: '1%'
        },
        {
          name: 'Ice cream sandwich',
          calories: 237,
          fat: 9.0,
          carbs: 37,
          protein: 4.3,
          iron: '1%'
        },
        {
          name: 'Eclair',
          calories: 262,
          fat: 16.0,
          carbs: 23,
          protein: 6.0,
          iron: '7%'
        },
        {
          name: 'Cupcake',
          calories: 305,
          fat: 3.7,
          carbs: 67,
          protein: 4.3,
          iron: '8%'
        },
        {
          name: 'Gingerbread',
          calories: 356,
          fat: 16.0,
          carbs: 49,
          protein: 3.9,
          iron: '16%'
        },
        {
          name: 'Jelly bean',
          calories: 375,
          fat: 0.0,
          carbs: 94,
          protein: 0.0,
          iron: '0%'
        },
        {
          name: 'Lollipop',
          calories: 392,
          fat: 0.2,
          carbs: 98,
          protein: 0,
          iron: '2%'
        },
        {
          name: 'Honeycomb',
          calories: 408,
          fat: 3.2,
          carbs: 87,
          protein: 6.5,
          iron: '45%'
        },
        {
          name: 'Donut',
          calories: 452,
          fat: 25.0,
          carbs: 51,
          protein: 4.9,
          iron: '22%'
        },
        {
          name: 'KitKat',
          calories: 518,
          fat: 26.0,
          carbs: 65,
          protein: 7,
          iron: '6%'
        }
      ]
    }
  },
})
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.primary,
.primary:hover {
  /** avoid using !important, added just for example**/
  background-color: red !important;
}

.as-console-wrapper {
  display: none !important;
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<link href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900|Material+Icons" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/vuetify@1.x/dist/vuetify.min.css" rel="stylesheet">
<div id="app">
  <v-data-table :headers="headers" :items="desserts" class="elevation-1">
    <template v-slot:items="props">
        <tr @click="selectRow(props.item)" :class="{ 'primary': props.item.isSelected }">
        <td>{{ props.item.name }}</td>
        <td>{{ props.item.calories }}</td>
        <td>{{ props.item.fat }}</td>
        <td>{{ props.item.carbs }}</td>
        <td>{{ props.item.protein }}</td>
        <td>{{ props.item.iron }}</td>
        </tr>
      </template>
  </v-data-table>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.x/dist/vue.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vuetify@1.x/dist/vuetify.js"></script>

票数 4
EN

Stack Overflow用户

发布于 2020-12-11 02:28:58

我知道这是一个有点老的问题,但是您可以使用vuetify的item-class@click:row属性来处理行单击和设置自定义行类。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57490177

复制
相关文章
java调用wkhtmltopdf生成pdf文件,美观,省事
最近项目需要导出企业风险报告,文件格式为pdf,于是搜了一大批文章都是什么Jasper Report,iText ,flying sauser ,都尝试了一遍,感觉不是我想要的效果,
大道七哥
2019/09/10
5.1K1
java调用wkhtmltopdf生成pdf文件,美观,省事
ASP.NET指定页面转PDF、JPG(插件)
转PDF、JPG插件(wkhtmltox-0.12.4_msvc2015-win64.exe)
小语雀网
2022/05/06
1.8K0
wkhtmltopdf入门
在进行网页开发中,有时会遇到需要将网页内容转换为PDF格式的需求,这时候我们可以使用​​wkhtmltopdf​​工具来实现。本篇文章将介绍​​wkhtmltopdf​​的基本用法和常见问题。
大盘鸡拌面
2023/10/25
1.5K0
linux wkhtmltopdf install
download: https://wkhtmltopdf.org/downloads.html
刀枪不入de王二花
2022/09/30
6000
在线文档电子书化
在网上看到某技术产品的文档,想把文档弄下来在电子书阅读器上离线看,可发现这个技术文档没有提供pdf等电子书格式,于是想办法自己做一个,这里记录一下。
jeremyxu
2019/03/15
1.4K0
在 Linux 上查找和删除损坏的符号链接
符号链接(symbolic link)在 Linux 系统上扮演了非常有用的角色。它们可以帮助你记住重要文件在系统上的位置,使你更容易访问这些文件,并让你不必为了更方便访问大文件而复制它们,从而节省了大量的空间。
用户9104802
2021/11/22
2.7K0
Go每日一库之149:PDF处理相关库
使用qpdf进行强制解密,有些情况是可以解密成功的,但是有些情况也不一定能解密成功
luckpunk
2023/10/02
2.3K0
nodejs生成多层目录和生成文件的通用方法
/** *生成多层目录 * @param dir 多层目录 * @param split 分隔符,ex:'/' 对应的目录地址:'2015/10/10' * @param mode 目录权限(读写权限),默认0777 * @param callback */ var createDirsSync = function (dir, split, mode, callback) { console.log("创建目录:" + dir); if (!fs.existsSync(dir)
磊哥
2018/05/08
8370
nodejs中生成uuid
nodejs中有一个uuid的生成库uuid:https://www.npmjs.com/package/uuid,使用起来非常简单。
ccf19881030
2020/11/06
7.2K0
error: wkhtmltopdf ContentNotFoundError
#Exit with code 1 due to network error: ContentNotFoundError
刀枪不入de王二花
2022/08/17
1.3K0
error: wkhtmltopdf ContentNotFoundError
将自己的nodeJS项目分享到npm上
在项目中输入cmd 第三种:使用按住电脑上的window+r,进入如下图所示,然后输入cmd,点击确定进入控制台
_kyle
2020/08/24
7270
将自己的nodeJS项目分享到npm上
python报错wkhtmltopdf: command not found【python】
yum install zlib fontconfig freetype X11 libs libX11 libXext libXrender libpng*
sinnoo
2020/11/13
1.2K0
wkhtmltopdf linux 中文乱码解决【python】
/usr/local/bin/wkhtmltopdf 1.html 1.pdf
sinnoo
2020/11/13
8K0
ALM损坏后的恢复步骤
ALM是HP出品的软件开发生命周期软件,其全称是Application Lifecycle Management,其采用B/S结构,从需求,业务模型到测试用例和缺陷管理亦应具有,满足了一般软件企业对开发的产品和项目的全程管理,功能强大易用。 本人使用的ALM采用微软的SQL Server2008作为其数据库,一直用的好好的,但因停电导致启动机器后无法使用(ALM和SQL Server两者都部署在同一台机器中),后来才发现对应的数据库处于suspect状态。 之后查找资料,好不容易将数据库搞好了,但ALM仍无
企鹅号小编
2018/01/25
1.3K0
nodejs 生成8位短id
nodejs版: var uuid = require('uuid'); var shortArray = ["a", "b", "c", "d", "e", "f",     "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s",     "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5",     "6", "7", "8", "9", "A", "B",
小贝壳
2020/03/05
2.9K0
centos7安装Wkhtmltopdf
从官网下载预编译版安装: wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz 解压 tar xvfJ wkhtmltox-0.12.4_linux-generic-amd64.tar.xz 移动位置并赋予权限 cd wkhtmltox/bin sudo mv ./wkhtmltopdf /usr/bin/wkhtmltopdf
如梦初醒_-
2022/10/26
1.2K0
nodejs生成不重复数字的一种办法
最近在做需求的时候,有个管理端接口需要在调用的时候传递一个无符号的32位整形文件ID,也就是0 ~ 4294967295之间的数字,每次调用接口这个文件ID不能重复。
easonxie
2021/06/21
2.3K0
在CentOS 6.5上安装NodeJS
CentOS的软件源未包含有最新的nodejs, 需要手动编译安装。 首先安装依赖的库与工具 yum install libtool automake autoconf gcc-c++ openssl-devel 准备命令: yum install epel-release 无需下载源码及解压: 安装: yum install nodejs 验证是否安装配置成功: node -v
似水的流年
2019/12/06
1.1K0
Oracle数据块损坏的恢复实例
数据库有有效的RMAN备份,那么很简单,直接恢复损害数据块即可。 RMAN> blockrecover datafile 6 block 3893;
Alfred Zhao
2019/05/24
1.7K0
点击加载更多

相似问题

结构化numpy数组中多列的Numpy.isin过滤

15

numpy结构化数组按多列排序

13

如何在numpy中返回数组列?

234

如何在多列上屏蔽numpy结构数组?

12

修改数组numpy中的多列

221
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文