Odd Rows
Apply different styles to odd rows for better readability and data distinction with the help of the RowOddPlugin
.
Source code
import { defineCustomElements } from '@revolist/revogrid/loader';import { RowOddPlugin } from '@revolist/revogrid-pro';import { useRandomData, currentTheme } from '../composables/useRandomData';
defineCustomElements();
export function load(parentSelector: string) { const grid = document.createElement('revo-grid'); const { createRandomData } = useRandomData(); const { isDark } = currentTheme();
grid.source = createRandomData(100); grid.columns = [ { name: '🆔 ID', prop: 'id' }, { name: '🍎 Fruit', prop: 'name', size: 350 }, { name: '💰 Price', prop: 'price' }, ]; grid.plugins = [RowOddPlugin]; grid.theme = isDark() ? 'darkCompact' : 'compact';
grid.hideAttribution = true; document.querySelector(parentSelector)?.appendChild(grid);}
<template> <RevoGrid class="rounded-lg overflow-hidden" :columns="columns" :source="source" :plugins="plugins" :theme="isDark ? 'darkCompact' : 'compact'" hide-attribution /></template>
<script setup lang="ts">import RevoGrid, { type ColumnRegular } from '@revolist/vue3-datagrid';import { RowOddPlugin } from '@revolist/revogrid-pro';import { ref } from 'vue';import { useRandomData, currentThemeVue } from '../composables/useRandomData';
const { createRandomData } = useRandomData();const { isDark } = currentThemeVue();
const source = ref(createRandomData(100));
const columns: ColumnRegular[] = [ { name: '🆔 ID', prop: 'id' }, { name: '🍎 Fruit', prop: 'name', size: 350 }, { name: '💰 Price', prop: 'price' },];
const plugins = [RowOddPlugin];</script>
import React, { useMemo } from 'react';import { RevoGrid, type ColumnRegular } from '@revolist/react-datagrid';import { RowOddPlugin } from '@revolist/revogrid-pro';import { useRandomData, currentTheme } from '../composables/useRandomData';
const { createRandomData } = useRandomData();const { isDark } = currentTheme();
function RowOdd() { const source = createRandomData(100);
const columns: ColumnRegular[] = useMemo( () => [ { name: '🆔 ID', prop: 'id' }, { name: '🍎 Fruit', prop: 'name', size: 350 }, { name: '💰 Price', prop: 'price' }, ], [] );
const plugins = [RowOddPlugin];
return ( <RevoGrid source={source} columns={columns} plugins={plugins} theme={isDark() ? 'darkCompact' : 'compact'} hideAttribution /> );}
export default RowOdd;
import { Component, ViewEncapsulation, OnInit } from '@angular/core';import { RevoGrid } from '@revolist/angular-datagrid';import { RowOddPlugin } from '@revolist/revogrid-pro';import { useRandomData, currentTheme } from '../composables/useRandomData';
@Component({ selector: 'row-odd-grid', standalone: true, imports: [RevoGrid], template: ` <revo-grid [source]="source" [columns]="columns" [plugins]="plugins" [theme]="theme" [hideAttribution]="true" style="height: 400px;" ></revo-grid> `, encapsulation: ViewEncapsulation.None,})export class RowOddGridComponent implements OnInit { source = useRandomData().createRandomData(100);
columns = [ { name: '🆔 ID', prop: 'id' }, { name: '🍎 Fruit', prop: 'name', size: 350 }, { name: '💰 Price', prop: 'price' }, ];
plugins = [RowOddPlugin]; theme = currentTheme().isDark() ? 'darkCompact' : 'compact';
ngOnInit() { // Any additional initialization logic }}