asp.net-mvc-3 - MVC WebGrid-如何以编程方式获取当前页面,排序列等

标签 asp.net-mvc-3 webgrid

如何以编程方式(使用javascript)获取ASP.NET MVC WebGrid的当前页码,最后一个排序列和排序方向?

在调用$("#grid").load()方法之前是否可以更新参数?

最佳答案

唯一可能的解决方案是使用jQuery检索:
-第一列标题中的“href”属性以获取页码和
-来自“下一页号”的“href”属性,以获取排序列和排序方向。

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]);
}

关于asp.net-mvc-3 - MVC WebGrid-如何以编程方式获取当前页面,排序列等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5344668/

相关文章:

javascript - 位置固定在垂直滚动上,但不是水平滚动

asp.net-mvc-3 - 在 MVC3 中禁用 HTML.TextAreaFor

asp.net-mvc - 在 System.Web.Helpers.WebGrid 中定义内联行样式

asp.net-mvc-3 - 数据注释首先使用代码在主键上设置身份种子值

jquery - 防止使用 Jquery 将默认值提交给 MVC3 Controller ?

c# - 使用 Microsoft Web Optimization 缩小 CSS 和 JavaScript

c# - 仅在服务器上使用 mvc webgrid 间歇性接收失败

asp.net-mvc-3 - WebGrid:在行(tr)中包括信息。例如ID

asp.net-mvc-3 - ASP.NET MVC3 WebGrid 帮助程序和模型元数据

asp.net-mvc - 通过 post asp.net mvc 将 webgrid 数据传递回 Controller