javascript - 从 PagedListPager 调用 JavaScript 函数

标签 javascript jquery asp.net-mvc razor pagedlist

是否可以从 @Html.PagedListPager(在这里) 中调用 JavaScript 函数?

我有一个按钮,可以调用以下函数并轻松执行所有应该执行的操作:

function fetchResults() {
    $.get('@Url.Action("Search", "Notifications")',
        {
            device: "Device"
        },
        function (data) {
            $('#results').html(data);
        })
};

现在,当我单击 PagedListPager 上的页码时,如何执行相同的操作?

目前我的寻呼机重新加载页面,这是我想避免的主要事情。

这是我的寻呼机:

@Html.PagedListPager((IPagedList)ViewBag.NotificationsPage, page => 
    Url.Action("Search", "Notifications", new
    {
        device = "Device",
        page = page
    }),
    PagedListRenderOptions.PageNumbersOnly)

也许有更好的方法来做到这一点。我们将不胜感激。

最佳答案

这个@Html.PagedListPager 帮助器所做的就是吐出一些包含执行分页链接的 HTML。因此,您可以订阅这些链接的点击事件并对它们进行 AJAX 化:

$(document).on('click', 'a', function() {
    $.ajax({
        url: this.href,
        type: 'GET',
        cache: false,
        success: function(result) {
            $('#results').html(result);
        }
    });
    return false;
});

需要注意的重要事项:

  • 我以活跃的方式订阅了点击事件。这意味着,如果我们替换 AJAX 请求的成功回调中的链接,此点击事件处理程序将继续工作
  • 您可能需要调整 $(document).on('click', 'a', function() { 选择器,该选择器具有很强的包容性,并且仅针对此分页器生成的链接。例如,查看它们是否不在某些包含 div 或其他内容的内部,在这种情况下,您可以使用类似 $('.pager').on('click', 'a', function() {
  • success 回调中,您可能需要调整 $('#results') 选择器以定位包含实际结果的 div,该结果将通过部分结果刷新您的 Controller 操作返回的 HTML。
  • 谈到部分 HTML 和 Controller 操作,您显然需要调整 AJAX 请求中调用的 Controller 操作,以返回 PartialView,而不是仅包含更新的记录和新分页链接的完整 View 。

关于javascript - 从 PagedListPager 调用 JavaScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21606507/

相关文章:

javascript - 单击 div 后将内容推送到 div 的隐藏输入

javascript - 如何检查 TempData Razor MVC 中编写的 js 代码中的 null 值

c# - 从 Controller 下载文件 RedirectToAction()

jquery - 我无法在 jquery 中获取 id

javascript - 查询。语法有问题吗?

javascript - 如何防止使用 selectvizr 时 mootools 和 jquery 之间的冲突?

javascript - 根据属性值隐藏div?

javascript - 使用javascript提取字符串

c# - ASP.NET MVC 应用程序中的非托管 DLL 导致应用程序池在 IIS 服务器上停止

javascript - 在 Node.js 的 for 循环中使用类