É possível impedir que as linhas do JQGrid sejam selecionadas e/ou destacadas?
-
23-09-2019 - |
Pergunta
Eu olhei para o documentação Mas não consegui encontrar uma resposta. Existe uma maneira de impedir que uma linha seja destacada quando selecionada? Isso ou mesmo uma maneira de impedir que a linha seja selecionada. Gosto da opção "Hoverrows: True", mas, idealmente, gostaria de impedir que uma linha seja selecionada em clique.
Obrigado,
Atualizar:Consegui "implementar hackear" algo que parece ser uma correção provisória. Eu realmente não gosto e gostaria de uma solução melhor, se houver uma ...
Eu descobri que se eu passar a opção
onSelectRow: function(rowid, status) {
$('#'+rowid).removeClass('ui-state-highlight');
}
Quando instancie o JQGrid, posso retirar o destaque quando ele é adicionado.
Existe outra maneira mais ideal de fazer isso?
Solução
Use o seguinte código:
beforeSelectRow: function(rowid, e) {
return false;
}
Outras dicas
Se você, como eu, tem um gazilhão de JQGrids e não quer substituir o OnSelectrow para cada um, aqui está uma versão global da solução de Reigel que funcionou bem para mim:
jQuery.extend(jQuery.jgrid.defaults, {
onSelectRow: function(rowid, e) {
$('#'+rowid).parents('table').resetSelection();
}
});
Suponho que você possa abordar isso diretamente no CSS. Basta substituir os valores para a UI-State-Highlight para sua tabela específica
#table_id tr.ui-state-highlight {
border: inherit !important;
background: inherit !important;
color: inherit !important;
}
#table_id tr.ui-state-highlight a {
color: inherit !important;
}
#table_id tr.ui-state-highlight .ui-icon {
background-image: inherit !important;
}
Eu usei o valor inherit
Apenas como exemplo - você provavelmente precisará copiar alguns valores do seu tema.css para fazer isso funcionar.
tentar:
onSelectRow: function(rowid, status) {
$("#grid_id").resetSelection(); //Resets (unselects) the selected row(s). Also works in multiselect mode.
}
você pode ler documentações aqui. Espero que ajude você ...
Sim, use o retorno de chamada Rowattr:
rowattr: function (rowData,currentObj,rowId) {
if (rowData.SomeField=="SomeValue") {
return {"class": "ui-state-disabled"};
}
},
Isso também prende a linha e desativa a seleção.