【问题标题】:Can I create a PagedListPager that does not call a function我可以创建一个不调用函数的 PagedListPager
【发布时间】:2017-09-15 11:19:56
【问题描述】:

我正在尝试使用 ajax 调用来管理列表,在第一次加载时一切都很好,因为搜索按钮会进行 ajax 调用来加载结果的第一页。问题是当我创建 PagedListPager 时,它正在调用控制器函数,导致页面重置并且结果消失。

所以我想做的是将 PagedListPager 创建为没有任何操作的按钮,并使用 Javascript 处理对这些按钮的点击。有人知道如何解决这个问题吗??

【问题讨论】:

    标签: javascript c# ajax model-view-controller


    【解决方案1】:

    我找不到使用 PagedListPager 的解决方案。 PagedListPager 创建一个无序列表,我在视图中重新创建了一个空白链接,如下所示:

    <a href="">/</a> 
    

    这很有用,因为它维护了站点上其他 PagedLists 上使用的样式。然后从 javascript 中,覆盖 li click 事件,如下所示:

     $(document).on("click", "li", function (event)
    

    现在我可以从每个 li 进行 ajax 调用,而无需每次都刷新页面。 希望这可以帮助一些人!

    更优雅的解决方案是创建带有 id 的列表

    <ul id="pagingbuttons" class="pagination">
    

    并且还为列表中的 li 元素提供 id。 所以现在从javascript覆盖这个列表的点击事件就像这样

     $(document).on('click', '#pagingbuttons', function(event)
    

    然后我们点击任意按钮就可以得到它的id值

    event.target.text
    

    这会阻止同一页面上的任何其他 li 元素无意中触发 ajax 调用。

    【讨论】:

      【解决方案2】:

      你可以使用这个 javascript 库(我写的):https://github.com/pjbonestroo/PagedList

      它解决了重新加载、分页等问题,并且是完全可定制的。它包括文档。

      它将通过 ajax 调用自动调用您的控制器函数,或者您可以根据需要在客户端添加数据。

      它还有一些不错的功能,比如

      • 过滤和排序(客户端或服务器端,根据偏好)
      • 去抖动以防止刷新次数过多
      • 可自定义的按钮和样式,取决于行数据
      • 轻松向行添加/删除事件侦听器(并在触发时获取行数据)

      关于您的问题,请特别注意可自定义的按钮,以便您使用 Javascript 处理对按钮的点击。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-03-03
        • 2021-11-09
        • 1970-01-01
        • 2022-01-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多