Row Odd
Apply different styles to odd rows for better readability and data distinction with the help of the RowOddPlugin.
Source code
TypeScript ts
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);
} Vue vue
<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> React tsx
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; Angular ts
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="min-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
}
}