Estilo condicional de grade Blazor

    O recurso Ignite UI for Blazor Estilo condicional em Blazor Grid permite o estilo personalizado em um nível de linha ou célula. A IgbGrid funcionalidade Estilo condicional é usada para enfatizar ou realçar visualmente os dados que atendem a determinados critérios, tornando mais fácil para os usuários identificar informações ou tendências importantes na grade.

    Grid Conditional Row Styling

    O IgbGrid componente no Ignite UI for Blazor fornece duas maneiras de estilizar condicionalmente linhas com base em regras personalizadas.

    Mais adiante neste tópico, abordaremos os dois com mais detalhes.

    Using Row Classes

    Você pode estilizar condicionalmente as IgbGrid linhas definindo a RowClasses entrada e definir regras personalizadas.

    <IgbGrid AutoGenerate="true" Id="grid" Data="CustomersData" Name="grid" RowClassesScript="RowClassesHandler" @ref="grid">
    </IgbGrid>
    

    A RowClasses entrada aceita um literal de objeto, contendo pares chave-valor, em que a chave é o nome da classe CSS, enquanto o valor é uma função de retorno de chamada que retorna um valor booleano ou booleano.

    igRegisterScript("RowClassesHandler", () => {
        return {
            activeRow: (row) => row.index === 0
        };
    }, true);
    
    .activeRow {
        border: 2px solid #fc81b8;
        border-left: 3px solid #e41c77;
    }
    

    Demo

    Using Row Styles

    O IgbGrid controle expõe a propriedade que permite o RowStyles estilo condicional das linhas de dados. Semelhante a RowClasses ele, aceita um literal de objeto em que as chaves são propriedades de estilo e os valores são expressões para avaliação. Além disso, você pode aplicar um estilo regular (sem quaisquer condições).

    The callback signature for both RowStyles and RowClasses is:

    (row) => boolean
    

    Vamos definir nossos estilos:

    igRegisterScript("WebGridRowStylesHandler", () => {
        return {
            'background': (row) => (+row.data['Change'] < 0 && +row.data['AnnualChange'] < 0) ? '#FF000088' : '#00000000',
            'border': (row) => (+row.data['Change'] < 0 && +row.data['AnnualChange'] < 0) ? '2px solid' : '1px solid',
            'border-color': (row) => (+row.data['Change'] < 0 && +row.data['AnnualChange'] < 0) ? '#FF000099' : '#E9E9E9'
        };
    }, true);
    
    <IgbGrid AutoGenerate="true" Id="grid" Data="CustomersData" Name="grid" RowStylesScript="WebGridRowStylesHandler" @ref="grid">
    </IgbGrid>
    

    Demo

    Grid Conditional Cell Styling

    Visão geral

    O IgbGrid componente em Ignite UI for Blazor fornece duas maneiras de estilizar condicionalmente de células com base em regras personalizadas.

    • Definindo a IgbColumn entrada CellClasses para um literal de objeto contendo pares de valores-chave. A chave é o nome da classe CSS, enquanto o valor é uma função de retorno de chamada que retorna um valor booleano ou booleano. O resultado é um estilo de material conveniente da célula.

    Using Cell Classes

    Você pode estilizar condicionalmente as IgbGrid células definindo o IgbColumn CellClasses insira e defina regras personalizadas.

    <IgbColumn Field="BeatsPerMinute" CellClassesScript="CellClassesHandler">
    

    A CellClasses entrada aceita um literal de objeto, contendo pares chave-valor, em que a chave é o nome da classe CSS, enquanto o valor é uma função de retorno de chamada que retorna um valor booleano ou booleano.

    igRegisterScript("CellClassesHandler", () => {
        return {
            downFont: (rowData, columnKey, cellValue, rowIndex) => rowData[columnKey] <= 95,
            upFont: (rowData, columnKey, cellValue, rowIndex) => rowData[columnKey] > 95
        };
    }, true);
    
    .upFont {
        color: green !important;
    }
    
    .downFont {
        color: red !important;
    }
    

    Demo

    • Usando a IgbColumn entrada CellStyles que aceita um literal de objeto em que as chaves são propriedades de estilo e os valores são expressões para avaliação.

    A assinatura de retorno de chamada para ambos cellStyles e cellClasses agora é alterada para:

    (rowData, columnKey, cellValue, rowIndex) => boolean
    

    Using Cell Styles

    As colunas expõem a propriedade que permite o CellStyles estilo condicional das células da coluna. Semelhante a CellClasses ele, aceita um literal de objeto em que as chaves são propriedades de estilo e os valores são expressões para avaliação. Além disso, você pode aplicar o estilo regular com facilidade (sem quaisquer condições).

    Vamos definir nossos estilos:

    igRegisterScript("WebGridCellStylesHandler", () => {
        return {
            background: (rowData, columnKey, cellValue, rowIndex) => rowIndex % 2 === 0 ? "#EFF4FD" : null,
            color: (rowData, columnKey, cellValue, rowIndex) => {
                if (columnKey === "Position") {
                    switch (cellValue) {
                        case "up": return "#28a745";
                        case "down": return "#dc3545";
                        case "current": return "#17a2b8"
                    }
                }
            }
        };
    }, true);
    
    <IgbColumn CellStylesScript="WebGridCellStylesHandler">
    </IgbColumn>
    

    Demo

    Known issues and limitations

    • Se houver células associadas à mesma condição (de colunas diferentes) e uma célula for atualizada, as outras células não serão atualizadas com base no novo valor, se a condição for atendida.

    API References

    Additional Resources

    Nossa comunidade é ativa e sempre acolhedora para novas ideias.