Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá
Possuo uma aplicação Web onde é feito o cadastro dos produtos que possuem semelhança entre duas empresas diferentes. Portanto no produto "x" de uma empresa são relacionados todos os outros produtos que possuem características semelhantes a ele.
Ficando como na imagem abaixo:
/applications/core/interface/imageproxy/imageproxy.php?img=http://i.imgur.com/sSwQz9u.png&key=7f56f5c3951e90235e015469d6ae266982b99093a2af8e2b871187d2d7be487b" alt="sSwQz9u.png" />
Estou fazendo o uso do jQuery EasyUI (http://www.jeasyui.com)
O problema acontece quando tento deletar (conforme indicado) os subprodutos (que são os produtos semelhantes) de um produto "x" por exemplo.
A aplicação não está "achando a linha" ao clicar no Deletar, apenas quando clico no Deletar dos itens relacionados ao 1º produto é que ele deleta, porém as vezes deleta o errado, no caso dos itens relacionados ao segundo, terceiro, etc produtos ele não faz nada, e acusa a mensagem : "Row is null"
Creio estar seguindo a documentação corretamente, como faço para o sistema achar e deletar exatamente a linha em que clico? Segue abaixo os trechos de código:
Trecho responsável por achar e deletar o produto clicado (cadprodutos.php)
<script type="text/javascript">
function removerEquivalencia(target) {
$.messager.confirm('Confirmação', 'Você tem certeza?', function(r) {
if (r) {
var row = $('#ddv').datagrid('getSelected');
$.post('./bd/remove_equivalencia.php', {id: row.PROD_SIMIL_ID}, function(result) {
if (result.success) {
$('#ddv').datagrid('reload');
} else {
$.messager.show({
title: 'Erro',
msg: result.msg
});
}
}, 'json');
}
});
}
</script>
Criação do datagrid com seus subitens (também no arquivo cadprodutos.php)
<script type="text/javascript">
$(function() {
$('#dg').datagrid({
view: detailview,
detailFormatter: function(index, row) {
return '<div style="padding:2px;"><table class="ddvclass" id="ddv"></table></div>';
},
onExpandRow: function(index, row) {
var ddv = $('#dg').datagrid('getRowDetail', index).find('table.ddvclass');
ddv.datagrid({
url: './bd/get_prodequivalentes.php?itemid=' + row.PROD_ID,
fitColumns: true,
singleSelect: true,
rownumbers: true,
loadMsg: '',
height: 'auto',
columns: [[
{field: 'EMP_NOME', title: 'Empresa', width: 80},
{field: 'PROD_DESCRCURTA', title: 'Descrição', width: 100},
{field: 'PROD_SIMIL_OBS', title: 'Observação', width: 100},
{field: 'PROD_SIMIL_PERC', title: 'Similar (%)', width: 40},
{field: 'acao', title: 'Ação', width: 35, align: 'center',
formatter: function(value, row, index) {
var a = '<a href="#" style="color: black;" onclick="removerEquivalencia(this)"><b>Deletar</b></a>';
return a;
}
}
]],
onResize: function() {
$('#dg').datagrid('fixDetailRowHeight', index);
},
onLoadSuccess: function() {
setTimeout(function() {
$('#dg').datagrid('fixDetailRowHeight', index);
}, 0);
}
});
$('#dg').datagrid('fixDetailRowHeight', index);
}
});
});
</script>
No código o arquivo "get_prodequivalentes.php" é o responsável por preencher todo o Datagrid com seus subitens, e o "remove_equivalencia.php" por deletar o produto ao clicar em Deletar na subgrid. Ambos estão funcionando corretamente.
Qualquer ajuda ou esclarecimento serão bem vindos.
Obrigado.
Carregando comentários...