获得完整的数据集,整理与YUI数据表分页
-
19-09-2019 - |
题
我希望我足够说明我的问题..这里有云:
我有一个锐数据表,通过JSON得到了一个服务器侧设定的记录,然后填充数据。
用户可在标头单击以在三个6列,(其使用自定义排序函数为每列)的数据进行排序。排序是在客户端完成。
当用户排序的数据,我需要能够从列中的一个被示出得到的值的完整列表。我需要的所有可用的数据,而不仅仅是什么渲染页面。通过分页隐藏的数据必须被包括在内。
任何想法?我已经试过DataTable的handleDataReturnPayload和doBeforeLoadData方法但两者得到原始的,未排序的数据。
我真的很呆在这里,我得取决于取决于我得到这个排序列表功能的客户端。
预先感谢。
解决方案
萨蒂扬,在在 YUI论坛回答我的问题的完美强>
在数据实际上存储在 记录集。在任何时候,你可以去 看着它,它会被归类为 显示在屏幕上,但它会 所有的数据,是否显示或不显示。
方法getRecordset()会给你一个 提到它,然后你可以循环 通过它的记录。
您可以收听columnSortEvent 被通知已经发生了排序。
我只订阅了该事件columnSortEvent并通过datatable.getRecordSet()返回的数组循环。getRecords()。
其他提示
我建议张贴这对YUI论坛 - http://yuilibrary.com/forum/一> - 这是一个伟大的地方得到的数据表问题的支持
。我偶然发现了这个问题,在寻找如何检索,这不是在数据表中显示的数据集信息。如果将隐藏的数据的数据源来显示你希望的任何字段之前,它会呈现空白,但如果你把它放在你要呈现(由列对象所定义的)最后一个域之后,那么他们将不会渲染但仍可通过记录访问)。
var columns = [
{key:"Whatchamacallits", children:[
{key:"name" },
{key:"price" }
]}
];
var ds = new YAHOO.util.DataSource('index.php...');
oDataSource.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
oDataSource.responseSchema = {
fields:["name","price","id"]
};
var dt = new YAHOO.widget.DataTable("dt-id", columns, ds, {});
dt.subscribe("rowClickEvent", dt.onEventSelectRow);
dt.subscribe("rowSelectEvent", function(p){ alert(p.getData('id'); });