MVC Webgrid分页和排序在Ajax调用后停止工作

MVC Webgrid分页和排序在Ajax调用后停止工作,ajax,asp.net-mvc,sorting,paging,webgrid,Ajax,Asp.net Mvc,Sorting,Paging,Webgrid,我创建了一个MVC应用程序,它使用webgrids在我的视图上显示数据。在我的网格工具栏中,我有下拉列表、文本框和一个搜索按钮,它们调用Jquery来执行各种操作。例如,如果我单击搜索按钮,我将根据文本条目通过Ajax刷新网格。在与webgrid(页面或排序)发生交互之前,所有这些都可以正常工作。我们注意到,如果进行了任何ajax调用,那么排序和分页就不再工作了。另外,如果我先加载页面和页面或排序,那么我的JavaScript都不起作用。我一直在研究这个问题,但没有看到任何具体的解决办法。有人对

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

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


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

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