0

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

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

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

我可能有很多hacky方法可以做到这一点,但是解决这个问题的“最好”方法是什么?

4

2 回答 2

0

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

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

然后用它替换 sortFunction。

于 2010-12-10T01:50:24.207 回答
0

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

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

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

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

于 2010-12-08T00:41:10.237 回答