Wie kann ich programmatisch (in Javascript) erhalten die aktuelle Seitenzahl, letzte Sortierspalte und Sortierrichtung des ASP.NET MVC WebGrid?
Ist es möglich, die Argumente zu aktualisieren, bevor der Aufruf der $("#grid").load()
Methode?
Wie kann ich programmatisch (in Javascript) erhalten die aktuelle Seitenzahl, letzte Sortierspalte und Sortierrichtung des ASP.NET MVC WebGrid?
Ist es möglich, die Argumente zu aktualisieren, bevor der Aufruf der $("#grid").load()
Methode?
Die einzig mögliche Lösung war die Verwendung von jQuery zum Abrufen: - das "href"-Attribut aus der ersten Spaltenüberschrift, um die Seitenzahl zu erhalten und - das "href"-Attribut aus der "nächsten Seitennummer", um die Sortierspalte und die Sortierrichtung zu erhalten.
function reloadGrid(form) {
var grid = form._grid ? form._grid.value : "grid";
var args = {};
updateQueryParams(args, grid + " th a");
args.sort = "";
args.sortdir = "";
updateQueryParams(args, grid + " tfoot a");
args.page = 1;
for (var i = 0; i < form.elements.length; i++) {
var el = form.elements[i];
if (el.type == "text" || el.type == "select" || (el.type == "radio" && el.checked))
args[el.name] = el.value;
else if (el.type == "checkbox")
args[el.name] = el.checked;
}
//get controller name
var s = $("#grid th a")[0].onclick.toString();
s = s.substring(s.indexOf("/"));
var controller = s.substring(0, s.indexOf("?"));
var queryString = "";
for (var key in args)
queryString += "&" + key + "=" + escape(args[key]);
var url = controller + "?" + queryString.substring(1);
$("#" + grid).load(url + " #" + grid);
}
function updateQueryParams(args, path) {
var links = $("#" + path);
if (links.length == 0)
return;
var s = links[0].onclick.toString();
s = s.substring(s.indexOf("?") + 1);
s = s.substring(0, s.indexOf(" #"));
var a = /\+/g; // Regex for replacing addition symbol with a space
var r = /([^&=]+)=?([^&]*)/g;
var d = function (s) { return decodeURIComponent(s.replace(a, " ")); };
var q = s;
while (e = r.exec(q))
args[d(e[1])] = d(e[2]);
}
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.