@Erik me puso en el camino correcto en este caso. Su solución funciona, pero conserva la interfaz de usuario de confirmación emergente pseudomodal existente, que quería evitar.
Tampoco capitaliza los servicios que JqGrid ASP.NET component proporciona. El componente realmente se encarga de todas las operaciones de CRUD, siempre que esté conectado a una fuente de datos configurada correctamente (ObjectDataSource, SqlDataSource, etc.).
Esta pieza que faltaba para mí era la mecánica detrás de las operaciones CRUD del componente. Por hurgando con Fiddler pude ver que los Mensajes de los datos correspondientes a la misma página, con la ClientID del objeto jqGrid en la cadena de consulta:
MyPage.aspx?jqGridID=ctl00_ctl00_Content_Content_MyJqGrid
para borrar, el contenido del puesto son como @ Erik describe:
oper=del&id=18
por lo que he podido duplicar la operación en mi misma para que conserven el control completo de todo el proceso:
$(".DeleteButton", grid).click(function(e) {
var rowID = getRowID(this);
$(grid).setSelection(rowID, false);
if (confirm('Are you sure you want to delete this row?')) {
var url = window.location + '?jqGridID=' + grid[0].id;
var data = { oper: 'del', id: rowID };
$.post(url, data, function(data, textStatus, XMLHttpRequest) {
$(grid).trigger("reloadGrid");
});
} else {
$(grid).resetSelection();
} // if
}); // click
getRowID = function(el) {
return $(el).parents("tr").attr("id");
};
@Erik - Gracias por señalarme en la dirección correcta. El componente ASP.NET realmente realiza la eliminación por usted si la tiene conectada a un SqlDataSource configurado correctamente (también se encarga de actualizar, insertar y seleccionar). –