我们使用了很多YUI数据表来显示数据,而不是使用我们自己完成的内置分页,因此我们可以使用AJAX在服务器端进行分页,而无需下载整个数据集(往往是巨大的。)
每当我们使用数据表的排序功能时,它只会对一页进行排序,因为从YUI的角度来看,它是整个数据集。
每当用户尝试对数据进行排序时,我都需要能够调用任意函数来重新加载页面数据。我查看了DataTable的sortFunction参数,它并不理想,因为它被多次调用(每次需要的每一行组合一次),我只需要执行一次。
我可能有很多hacky方法可以做到这一点,但是最好的方式是什么?
答案 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。