Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript YUI Datatable-在排序时调用任意函数*一次*_Javascript_Yui_Yui Datatable - Fatal编程技术网

Javascript YUI Datatable-在排序时调用任意函数*一次*

Javascript YUI Datatable-在排序时调用任意函数*一次*,javascript,yui,yui-datatable,Javascript,Yui,Yui Datatable,我们正在使用大量YUI数据表来显示数据,而不是使用内置分页,我们已经完成了自己的工作,因此我们可以在服务器端使用AJAX进行分页,而无需下载整个数据集(通常是巨大的) 但是,每当我们使用数据表的排序功能时,它只会对一个页面进行排序,因为从YUI的角度来看,这就是整个数据集 每当用户尝试对数据进行排序时,我需要能够调用任意函数来重新加载页面数据。我已经研究了DataTable的sortFunction参数,但它并不理想,因为它会被多次调用(对于它需要的每一行组合调用一次),而我只需要执行一次 我可

我们正在使用大量YUI数据表来显示数据,而不是使用内置分页,我们已经完成了自己的工作,因此我们可以在服务器端使用AJAX进行分页,而无需下载整个数据集(通常是巨大的)

但是,每当我们使用数据表的排序功能时,它只会对一个页面进行排序,因为从YUI的角度来看,这就是整个数据集

每当用户尝试对数据进行排序时,我需要能够调用任意函数来重新加载页面数据。我已经研究了DataTable的sortFunction参数,但它并不理想,因为它会被多次调用(对于它需要的每一行组合调用一次),而我只需要执行一次


我可能有很多黑客的方法可以做到这一点,但“最好”的方法是什么呢?

理想情况下,您可以在服务器端进行排序

创建datatable时,其中一个配置选项是generateRequest(请参见此示例:)

generateRequest是一个函数,它生成一个URL,返回正确的数据集来填充表。你可能有这个


对我来说,每当我单击列标题(进行排序)时,它都会向服务器发出新的请求,以获得正确的排序数据页。

为什么不编写一个自定义函数并关闭一个跟踪是否调用它的变量

var hasBeenCalled = false;
function mySortFunction(){
   if(!hasBeenCalled){
       // do something
       hasBeenCalled = true;
   }
}
然后用该函数替换sort函数