[RESOLVIDO] Style se perdendo na paginação

Bom dia, fiz uma estilização onde adiciono uma classe a coluna da minha grid, porem quando um mudo de pagina a estilização se perde por completo

Esse código está no meu onScriptinit:

<script>
	$(document).ready(function() {
		
		console.log('entrou');
		var span_status = $('.css_id_status_req_vend_grid_line > span');
		$(span_status).each(function( index, element ) {
			$(element).addClass('badge');
			if ($(element).text() == 'APROVADO') {
				$(element).addClass('badge-success');
			}else if ($(element).text() == 'REJEITADO') {
				$(element).addClass('badge-danger');
			}else if ($(element).text() == 'SOLICITAÇÃO') {
				$(element).addClass('badge-primary');
			}else if ($(element).text() == 'EM VALIDAÇÃO') {
				$(element).addClass('badge-info');
			}else if ($(element).text() == 'REVISÃO') {
				$(element).addClass('badge-warning');
			}else if ($(element).text() == 'INSTALADO') {
				$(element).addClass('badge-secondary');
			}
		});
		
	});
</script>

tenho um video mostrando

Em qual evento você está colocando esse código?

Onde insere o arquivo com a classe de estilos?

Não é um bug da ferramenta.

Coloque no evento onRecord utilizando as macros nativas do scriptcase ou mude o css mas dentro do evento onRecord.

Haroldo,

Tenho um arquivo css que esta na minha biblioteca externa e adiciono ela na classe da coluna via jquery no onscriptinit

Ronaldo, daria pra fazer assim pelo onRecord, porem é uma estilização padrão, dai tenho as configurações dela em um arquivo css para poder chamar em qualquer aplicação que for preciso, por esse motivo é complicado tela a tela no onRecord

Mas se tem que colocar no evento onScriptInit também não veja dificuldade de criar no evento onRecord pelo que entendi a minha sugestão é você criar uma função em biblioteca interna que recebe alguns parâmetros de acordo com a sua necessidade e sempre que precisar aplique em qualquer tela/grid que você for utilizar mas sempre no evento onRecord.

Discordo de colocar a inclusão do arquivo css no evento onrecord.
A cada página esse evento é executado N vezes.

Como discordo também varrer elementos em JS para trocar atributos.

Há tópicos referente a esse assunto nesse forum.

Tente:

OnRecord:

$classes = [
    'APROVADO'->'badge-success',
    'REJEITADO'-> 'badge-danger',
   ...
];

$_status = {status};
{status} = "<span class=\"{$classes[$status]}\">$status</span>";

2 Curtidas

Haroldo,

fiz da forma que me orientou

$classes = [
    "APROVADO"->"badge-success",
    "REJEITADO"-> "badge-danger",
    "SOLICITAÇÃO"-> "badge-primary",
    "EM VALIDAÇÃO"-> "badge-info",
    "REVISÃO"-> "badge-warning",
    "INSTALADO"-> "badge-secondary"
];

$_status = {ID_STATUS_REQ_VEND};
{ID_STATUS_REQ_VEND} = "<span class=\"{$classes[$_status]}\">$_status</span>";

porém esta retornando esse erro:

Parse error: syntax error, unexpected double-quoted string “badge-success”, expecting identifier or variable or “{” or “$” in C:\Program Files\NetMake\v9-php81\wwwroot\scriptcase\app\gestorsign\Grid_Vendas_Syngular\Grid_Vendas_Syngular_grid.class.php on line 3312

Qual o conteúdo desse campo {ID_STATUS_REQ_VEND}?
Se for um id o array deve ser ajustado e deve criar um campo virtual {status} e esconder esse campo {ID_STATUS_REQ_VEND}.

tente ajustar o código para…

= "<span class=".$classes[$_status].">$_status</span>";

Feito, criei o campo status para receber o conteudo

$classes = [
    "APROVADO"->"badge-success",
    "REJEITADO"-> "badge-danger",
    "SOLICITAÇÃO"-> "badge-primary",
    "EM VALIDAÇÃO"-> "badge-info",
    "REVISÃO"-> "badge-warning",
    "INSTALADO"-> "badge-secondary"
];

$status = {ID_STATUS_REQ_VEND};
{STATUS} = "<span class=".$classes[$status].">$status</span>";

porem continua o mesmo erro

Parse error: syntax error, unexpected double-quoted string “badge-success”, expecting identifier or variable or “{” or “$” in C:\Program Files\NetMake\v9-php81\wwwroot\scriptcase\app\gestorsign\Grid_Vendas_Syngular\Grid_Vendas_Syngular_grid.class.php on line 3315

Não pode fazer isso: criar variável como mesmo nome de campo.

$status == {STATUS} <-- não pode.

Analise a linha do código fonte para ver o que acontece, pois aparentemente não tem erro na atribuição da string concatenada.

Haroldo,

Perdão pelo erro, passou despercebido

$classes = [
    "APROVADO"->"badge-success",
    "REJEITADO"-> "badge-danger",
    "SOLICITAÇÃO"-> "badge-primary",
    "EM VALIDAÇÃO"-> "badge-info",
    "REVISÃO"-> "badge-warning",
    "INSTALADO"-> "badge-secondary"
];

$_status = {ID_STATUS_REQ_VEND};
{STATUS} = "<span class='".$classes[$_status]."'>$_status</span>";

Continua o erro

Parse error: syntax error, unexpected double-quoted string “badge-success”, expecting identifier or variable or “{” or “$” in C:\Program Files\NetMake\v9-php81\wwwroot\scriptcase\app\gestorsign\Grid_Vendas_Syngular\Grid_Vendas_Syngular_grid.class.php on line 3315

Parece que ele não esta colocando as aspas pra chamar a classe

Haroldo talvez eu não soube me expressar mas a minha ideia é esse ai que você fez só que criando uma função que servirá para qualquer outra apenas passando parâmetros!

Exemplo:


No evento onRecord faz a chamada:
{status} = ajusta_campo({status});

function ajusta_campo($statusRecebido) {
$classes = [
    'APROVADO'->'badge-success',
    'REJEITADO'-> 'badge-danger',
   ...
];

$retorno = "<span class=\"{$classes[$statusRecebido]}\">$statusRecebido</span>";
return($retorno);
}

Usando dessa maneira pode passar mais parâmetros para a função se tornar genérica para estar usando a mesma em outras locais.

Ah sim, entendido.
……………

Amigo deu certo o problema era no array, nao pode ser -> e sim =>

mais funcionou, obrigado ao amigo pela ajuda

Amigo deu certo o problema era no array, nao pode ser -> e sim =>

mais funcionou, obrigado ao amigo pela ajuda

1 Curtida