选项卡内的YUI2数据表

时间:2013-07-19 18:13:11

标签: datatable yui

我有一个数据表配置如下

function handleTabChange(e){    
var errDataSource = new YAHOO.util.DataSource("/webapp/somecontroller");
    errDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
    errDataSource.responseSchema = { 
              fields: [
                        "id","name","err_msg","err_sugg","created_at","created_by","rev"
                       ] 
              };
    var errColDef = [ 
                   {key:"error_id", sortable:true}, 
                    {key:"created_at", formatter:YAHOO.widget.DataTable.formatDate, sortable:true, sortOptions:{defaultDir:YAHOO.widget.DataTable.CLASS_DESC}}, 
                    {key:"name",  sortable:true}, 
                    {key:"rev",  sortable:true}, 
                    {key:"err_msg"}, 
                    {key:"err_sugg" }, 
                    {key:"created_by"} 
                ]; 
    var errorDataTable = new YAHOO.widget.Datatable("errorDataTable",errColDef, errDataSource,{scrollable:true,width:"100%"});
    errorDataTable.render();
}

在我想要填充此数据表的标签中,我添加以下行

tab3.addListener('click', handleTabChange);

当我调试这个时,我可以看到控件流过

  

handleTabChange

但是我的网络没有显示数据源的调用。

如果我正确地将数据表集成到标签视图中,您是否可以采取行动。

2 个答案:

答案 0 :(得分:0)

我知道这不是一个完整的答案,但我现在已经很久没有使用过YUI2了。这是我记得的,我希望它有所帮助。在隐藏容器中创建DataTable时出现问题,特别是在需要进行大量计算以将标头同步到内容时滚动DataTable。在某些浏览器中,尝试读取不可见元素的宽度或高度会导致错误。如果您在调试器中运行带有'break on error'选项的代码,很可能会发生一些错误。这可以防止DataTable完成初始化,因此,它在获取数据时永远不会到达该部分。

我不记得这个名字了,但浏览我发现onShow()的API文档是为了解决这个问题。

此外,单击选项卡上的单击并不能保证选项卡的面板可见。您应该收听TabView上的activeTabChange,它会在标签变为可见后触发。

很抱歉,如果我得不到多少帮助,那已经有一段时间了。欢呼声。

答案 1 :(得分:0)

我有一段时间没有使用YUI2(我强烈建议您不要用YUI2编写任何新代码并切换到YUI3以获取新内容),但看起来您错过了initialRequest选项或者在DataSource上调用sendRequest

DataTable Control: JSON Data Over XHR示例显示了如何使用initialRequestsendRequest