Quando fazemos uma exclusão de registro contido em uma gridview, utilizamos uma rotina feita em Jquery que se comunica com uma rotina servidor que de fato faz a exclusão no banco. Abaixo, segue os
seguintes passos para tais processos:
Primeiramente, é necessário entender como será a estrutura dos botões de excluir da grid:
<asp:TemplateField HeaderText="<a href="Customer_General.aspx"> <div class="insert" title="Inserir"></div></a>"
ItemStyle-HorizontalAlign="Left">
<ItemTemplate>
<div class="delete" title="Apagar" id='<%# Eval("CustomerId") %>' companyid='<%# Eval("CompanyId") %>'>
</div>
</ItemTemplate>
<ItemStyle Width="1%" />
</asp:TemplateField>
obs.: A div refere-se ao botão excluir
Depois, observamos o código Jquery:
var line;
$(".delete").click(
function()
{
var event = arguments[0] || window.event;
event.cancelBubble = true;
event.stopPropagation();
line = $(this.parentNode.parentNode);
var request = PageMethods.DeleteCustomer(
$(this).attr("id"),
$(this).attr("companyid"),
function(result, response, context)
{
if(result){
line.removeClass().addClass('Items_Selected').hide();
}else{
alert("O registro não pode ser apagado pois há outros registros associados!");
}
}
);
}
);
E por último o webMethod:
[WebMethod]
public static bool DeleteCustomer(int customerid, int companyid)
{
bool result = true;
using (CustomerManager customerManager = new CustomerManager(null))
{
try
{
customerManager.Delete(customerManager.GetCustomer(customerid, companyid));
}
catch (System.Data.SqlClient.SqlException e)
{
result = false;
}
}
return result;
}