JQGrid: 'beforeSelectRow' e 'sortableRows' - excluir coluna de ser arrastável?
Estou usando Oleg 'ssugestã para usar obeforeSelectRow
para manipular cliques nas células da minha grad
ódigo de Oleg em sua resposta (que o meu imita exatamente
Você pode definir as colunas com botões como seguir
{ name: 'add', width: 18, sortable: false, search: false,
formatter:function(){
return "<span class='ui-icon ui-icon-plus'></span>"
}}
No código acima, eu uso o formatador personalizado de jqGrid, mas sem nenhuma ligação de evento. O código de
beforeSelectRow: function (rowid, e) {
var iCol = $.jgrid.getCellIndex(e.target);
if (iCol >= firstButtonColumnIndex) {
alert("rowid="+rowid+"\nButton name: "+buttonNames[iCol]);
}
// prevent row selection if one click on the button
return (iCol >= firstButtonColumnIndex)? false: true;
}
OndefirstButtonColumnIndex = 8
ebuttonNames = {8:'Add',9:'Edit',10:'Remove',11:'Details'}
. No seu código, você pode substituir o alerta pela chamada de função correspondent
O problema é que minha grade também é classificável- (eu uso osortableRows
método na minha grade). Se o usuário estiver movendo o mouse um pouco ao clicar na célula, obeforeSelectRow
evento nunca é acionado (o evento classificável é
Isso é desejável na maioria das situações; no entanto, acho que o que resolveria isso é excluir de alguma forma as colunas de 'alças' para arrastar (classificar) a linha e deixar meuonSelectRow
gatilho de evento nessas colunas. Eu simplesmente não consigo descobrir como fazer isso! Qualquer ajuda é extremamente apreciada:)