YUI数据表 - 在排序时调用任意函数*一次*

时间:2010-12-07 14:03:23

标签: javascript yui yui-datatable

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

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

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

我可能有很多hacky方法可以做到这一点,但是最好的方式是什么?

2 个答案:

答案 0 :(得分:0)

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

创建数据表时,其中一个配置选项是generateRequest(参见此示例:http://developer.yahoo.com/yui/examples/datatable/dt_bhm.html

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

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

答案 1 :(得分:0)

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

var hasBeenCalled = false;
function mySortFunction(){
   if(!hasBeenCalled){
       // do something
       hasBeenCalled = true;
   }
}

然后用那个替换sortFunction。