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 { currentTheme } from '../composables/useRandomData';
defineCustomElements();
export function load(parentSelector: string) { const grid = document.createElement('revo-grid'); const { isDark } = currentTheme();
grid.source = [ { id: 1, name: 'Apple', price: 100 }, { id: 2, name: 'Banana', price: 200 }, { id: 3, name: 'Cherry', price: 300 }, { id: 4, name: 'Date', price: 400 }, { id: 5, name: 'Elderberry', price: 500 }, { id: 6, name: 'Fig', price: 600 }, { id: 7, name: 'Grape', price: 700 }, { id: 8, name: 'Honeydew', price: 800 }, ]; 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 cell-border" :columns="columns" :source="source" :plugins="plugins" :theme="isDark ? 'darkMaterial' : 'material'" 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: '#', prop: 'id', size: 40 }, { 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, 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> `})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 }}