【问题标题】:MVC Webgrid Paging and Sorting Stops Working After Ajax CallsAjax 调用后 MVC Webgrid 分页和排序停止工作
【发布时间】:2012-07-22 04:19:39
【问题描述】:

我创建了一个 MVC 应用程序,它使用 webgrids 在我的视图上显示数据。在我的网格工具栏中,我有下拉菜单、文本框和一个搜索按钮,它们调用 Jquery 来执行各种操作。例如,如果我单击搜索按钮,我会根据文本条目通过 Ajax 刷新网格。在与 webgrid(页面或排序)发生交互之前,这一切都很好。我们注意到,如果进行了任何 ajax 调用,那么排序和分页将不再起作用。此外,如果我先加载页面和页面或排序,那么我的 JavaScript 都不起作用。我一直在研究这个问题,但没有看到任何具体的解决方案。有人有解决方案的建议吗?

【问题讨论】:

  • 我敢打赌你正在使用类似 $("#Sort").click(function(){}); 的东西将你的 jquery 处理程序附加到 document.ready 函数中。 -> 当您重新加载网格时,不会重新附加 jquery 处理程序。尝试使用类似这样的东西 $("#Sort").live('click', function(){});完全猜测,因为您没有发布代码。还建议您在 live() 处理程序上查找 jquery 文档。
  • 谢谢你,Tommy,我在我的 jquery 中添加了处理程序,并在刷新网格时修复了我的 Javascript 函数。我还发现 Ajax 调用必须是一个 get,因为分页和排序使用查询字符串参数。这是一篇让我想到这个的帖子:stackoverflow.com/questions/9903420/…
  • 我将评论移至下面的答案。如果我的 cmets 有帮助,请标记为已回答 :)

标签: ajax asp.net-mvc sorting paging webgrid


【解决方案1】:

我敢打赌,您正在使用类似$("#Sort").click(function(){}); 的东西将您的 jquery 处理程序附加到 document.ready 函数中。当您通过 AJAX 调用重新加载网格时,不会重新附加 jquery 处理程序,因为没有重新加载 DOM。尝试使用类似$("#Sort").live('click', function(){}); 的东西,一旦它出现在页面上,它就会将处理程序附加到您的标识符的任何实例。

这是一个完整的猜测,因为您没有发布任何代码,但是这个和您上面引用的帖子 (SO post) 似乎已经解决了您的问题。

【讨论】:

    猜你喜欢
    • 2012-03-30
    • 2011-05-19
    • 1970-01-01
    • 2015-06-05
    • 1970-01-01
    • 2012-05-14
    • 1970-01-01
    • 1970-01-01
    • 2012-03-03
    相关资源
    最近更新 更多