【问题标题】:How to retain data (form) on custom pagination using MVC?如何使用 MVC 在自定义分页上保留数据(表单)?
【发布时间】:2014-04-13 05:02:28
【问题描述】:

我有一个带有搜索条件的网格(使用脚手架选项生成的列表)。我创建了分页概念。我输入了搜索条件数据并搜索,回发后,我使用 TempData 保留了表单数据。但是,如果我单击网格中的页码,表单数据不会保留,并且网格也会刷新。

有什么办法可以保留分页数据?

谢谢!

【问题讨论】:

  • 听起来您正在刷新整个页面。通常,新数据应该更新(通过 AJAX)特定部分,即div。这样,您只需要更新网格而不是整个页面。表单数据将保持不变。
  • 你为什么不发布一些你到目前为止所做的代码?

标签: asp.net-mvc pagination


【解决方案1】:

我使用 JavaScript 在表单中动态添加了一个隐藏字段。页码存储在隐藏字段中,当用户点击页码时,提交表单。它运行良好,没有任何问题。

分页:

<button onclick="navigateTo(this, '@Url.RouteUrl("Defined_Route", new { currentPage = j })');">@j</button>

Javascript:

$(function () { //Page Load - Create hidden field, if search button found
    if ($("#search")) // Button id
    {
        var element = document.createElement("input");
        element.type = "hidden";
        element.id = "currentPage";
        element.name = "currentPage";
        element.value = '@TempData["Page"]';
        if (isNaN(element.value)) element.value = "1";
        $(to).parent().append(element);
    }
});

function navigateTo(field, url)
{
    $("#currentPage").val(field.innerText);
    if (isNaN($("#currentPage").val()))
    {
        location.href = url;//This is for direct url, ie. no search form
    }
    else
    {
        $("form").action = url;
        $("form").submit();
    }
}

【讨论】:

    猜你喜欢
    • 2016-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-05
    • 1970-01-01
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多