Evitando o evento RowSelected ao clicar em uma CheckBox

Sempre que clicamos na CheckBox de uma Consulta (Grid), a linha a qual este CheckBox pertence é selecionada automaticamente.

image

Este comportamento faz com o que o evento RowSelected da Consulta seja disparado caso a linha não esteja selecionada antes do click na CheckBox.

Se este comportamento não atende a sua necessidade, e você gostaria de evitar o disparo do evento RowSelected quando uma CheckBox estiver sendo marcada ou desmarcada, adicione o código JavaScript abaixo no seu Formulário:

latromi.formManager.setOnEventFiringCallback(function (context) {
    // Filtra por:
    //	  Tipo de evento (Field ou Form) 
    //	+ Nome do campo consulta
    //	+ Nome do Evento
    if (context.eventKind === 'Field'
        && context.field.name === 'nome_do_campo_consulta'
        && context.eventName === 'RowSelected') {
        // Procura por checkboxes na grid que estejam sendo marcadas ou desmarcadas.
        // Se encontrar, cancela o evento "RowSelected"
        var checkBoxes = [];
        document.querySelectorAll('#' + context.field.clientId + ' .rgSelectedRow input[type=checkbox].grdCellCheck')
            .forEach(function (chk) {
                // Criterios para identificar checkbox que estejam sendo marcada/desmarcada.
                if (chk.style.cursor === 'wait') {
                    checkBoxes.push(chk);
                }
            });
        // Cancela o evento se encontrou alguma checkbox
        if (checkBoxes.length > 0) {
            context.cancel = true;
            console.log("RowSelected cancelado");
        }
    }
});
Substitua "nome_do_campo_consulta" pelo nome do campo do tipo Consulta do seu Formulário.
1 curtida