如何在构造之后修改DataTable表

时间:2011-02-10 19:24:33

标签: yui yui-datatable

我想在ajax查询完成时修改YUI DataTable。例如,我有4个ajax查询查询需要1到10秒才能完成的事情。我希望在1s查询完成时开始构建表,并在每次ajax查询完成时再次修改表。有没有推荐的方法来做到这一点?

特别是,我想更改列的格式,以显示处理行时发生的任何潜在错误。但是,错误处理速度很慢,因此首先显示数据然后再添加错误将是有益的。

非常感谢您的帮助!

杰森

1 个答案:

答案 0 :(得分:0)

我假设您的多个请求正在聚合列数据。我还假设表是静态的(不是服务器端分页或排序)。

  1. 设置DataTable的列定义,以包含所有来源的所有列。
  2. 创建一个指向最快查询的服务网址的DataSource。
  3. 使用该DataSource实例化DataTable。
  4. 为其他服务创建更多DataSource,或为其他服务调用YAHOO.util.Connect.asyncRequest(...)
  5. 每个服务请求的回调都应该按照以下方式执行:
  6. (伪代码提前)

    function callback(data) {
        var recordset = myDataTable.getRecordSet(),
            records = recordset.getRecords(),
            i, len, rec;
    
        for (i = 0, len = records.length; i < len; ++i) {
            rec = records[i].getData(); // will return an object literal with data info
            /* match the record object to the new data and update the record object */
        }
    
        recordset.setRecords(records);
        myDataTable.render();
    }
    

    因此,每个附加服务都将在Record级别添加数据,然后将更新完整的表UI。

    HTH