[RESOLVIDO] Pintar a linha da grid - compartilhando

boa tarde a todos…

A muito tempo tenho procurado sobre esse tópico e não tenho encontrado solução em nenhum deles, pois a solução que existia, parou de funcionar no SC8 depois de alguns releases.

Encontrei a solução em uma dica do Fred Keyster https://www.youtube.com/watch?v=FHec3Iv2BYY

Se alguem mais tiver a mesma necessidade, aconselho primeiro dar uma examinada no código Jquery https://api.jquery.com/contains-selector/ para depois implementar em suas aplicações.

segue o código tão simples:
onde “ALCANCE” é a palavra chave que a função JS contains() vai usar pra pintar a linha, substitua essa palavra pelo conteúdo de qualquer coluna que esteja listado na grid.

onRecord:

// colorir a linha da grid
?>	
<script>
	$(document).ready(function(){
	$( "tr .scGridFieldOdd:contains('ALCANCE')" ).css( "background-color", "#CC0" );
	$( "tr .scGridFieldEven:contains('ALCANCE')" ).css( "background-color", "#CC0" );
});
</script>
<?php

Vale ressaltar para quem estiver começando no Scriptcase que .scGridFieldOdd são as linhas “pares” e .scGridFieldEven as “ímpares” e ao inspecionar vai ver que background-color tem valores diferentes para cada uma delas oque provoca esse efeito na grid diferenciando as linhas, por isso é necessário declarar as duas linhas para que sua condição seja realizada tanto na par quanto na ímpar.

Agora é só construir com a sua condição.

1 Curtida

Djalma,

Esse código funciona até hoje:

http://www.scriptcase.com.br/forum/index.php/topic,14611.msg76603.html#msg76603

usar o contains não da muita liberdade numa condição além de ajustar a côr do mouse hover na linha e manter a cor do mouse click tb.

Na v9:
https://v9.infinitusweb.com.br/scriptcase/app/forum_sc/grid_onclick/

TAG: Colorir, Linha, grid, v9, Haroldo, Hover

Ola mestre Haroldo…

você tem razão esse código funciona… porém eu não consegui resolver com ele o problema que esta acontecendo quando avanço as paginas da consulta e as linhas não se atualizam, continuando pintadas até que todas fiquem com a mesma cor…

ou seja, aqui no unRecord acho que é necessário um else: vou tentar implementar…

[iw_seq]++; IF ({resposta}): echo "<style> #SC_ancor[iw_seq] {background-color:#cbd0f6 !important} #SC_ancor[iw_seq]:hover {background-color:#b1b9f2 !important} </style>"; endif;

muito obrigado…

No exemplo do link funciona na navegação.
Na onNavigate eu zero o contador de linhas.

sim funciona direitinho… enquanto estou avançando as páginas esta tudo bem… mais quando eu retorno… todos os registros vão ficando pintados…

eu uso essa função javascript que criei como biblioteca externa:

function tr_colorir (id, color, hover)
{
	var var_style='';
	if (color)
	{
	  	var_style='{Background-Color:'+color+'} ';
	}
	
	if (hover)
	{
		var_style=var_style+' :hover {Background-Color:'+color+'} ';	
	}
	
	$('#'+id).attr('style',var_style);
}

Na onRecrod eu tenho:

[iw_seq]++;
if ({resposta})
{
	
?>
<style>
	#SC_ancor[iw_seq]		{background-color:#cbd0f6 !important} 
	#SC_ancor[iw_seq]:hover	{background-color:#b1b9f2 !important}
</style>"

<?php
	
	$_tr_color=" tr_colorir(\"SC_ancor[iw_seq]\",\"\",\"\")";
	{mycheck}="<img id=check_$_seq onclick='ajax_session(\"$_ajax\",$_seq); troca_img(\"check_$_seq\",\"$_img_cy\",\"$_img_cn\"); $_tr_color; return false;' src='$_img_cy'></img>";

}
else
{
	$_tr_color=" tr_colorir(\"SC_ancor[iw_seq]\", \"#cbd0f6\", \"#b1b9f2\")";
	{mycheck}="<img id=check_$_seq onclick='ajax_session(\"$_ajax\",$_seq); troca_img(\"check_$_seq\",\"$_img_cy\",\"$_img_cn\"); $_tr_color; return false;' src='$_img_cn'></img>";
}

na onNavigate:
[iw_seq]=0;

1 Curtida

Wow !! vou implementar isso… grande pérola essa Haroldo… obrigado…

Parece muito interessante essa solução, mas as linhas da grid não tem id. Não sei como recuperá-las

Id?