@MrChief tenía la idea anterior sobre el feo hack ... Lo puse juntos. Aquí está el código principal que solía hacer esto. De hecho, secuestra la llamada ajax antes de ponerla en el cable. La clave es modificar la URL que se envía porque la cuadrícula tomará esa URL de HttpContext.Request.Path. y conéctelo al onclick para el elemento de anclaje.
Pongo esto en mi common.js principal y simplemente adjuntaré una función para capturar el evento ajaxSend que ocurre justo antes de que se envíen los datos.
// Used to hijack the sending of all AJAX calls. Before it sends the call to the server, it checks to see if the
// active element (the element that prompted the call) is marked with a given class. If so, then it will perform
// the given operation.
$(document).ajaxSend(function (event, jqXHR, ajaxOptions) {
var activeElement = document.activeElement;
if ($(activeElement).attr('redosorturl') != null) {
// If this is a sort anchor link from a grid that needs to have the sort link redone, do it here.
// the code is in the eipGrip.js file.
if ($(activeElement).attr('redosorturl').toString() == 'redoSortURL') {
var newURL = RedoGridSortURL(activeElement, ajaxOptions.url.toString());
ajaxOptions.url = newURL.toString();
}
}
return false;
});
Al renderizar la página, que han marcado la etiqueta en la cabecera de la columna que contiene la dirección URL incorrecta con una clase llamada "redosorturl', así que sé cuando secuestrar la llamada AJAX, la operación tiene que ser hecho en este elemento. Luego llamo a una función personalizada que me da la URL correcta, luego ajaxOptions.url se reescribe con esa nueva URL.
Tengo que pasar el activeElement a esa función de reescritura para poder recorrer el DOM para obtener la información de la cuadrícula, donde he puesto datos como el controlador y el método de acción que se utiliza junto con los ID y otra información que uso para la URL. Del mismo modo, paso la cadena de url actual porque la grilla inyectará un token un t el final de la url que analizo y pongo la nueva url.
No creo que esto ayude con la clasificación o paginación según la pregunta original ... –
@JP: Tienes razón. Investigué un poco y actualicé mi respuesta con los hallazgos. – Mrchief
¡Buena respuesta, gracias! –