我有一个数据表配置如下
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
但是我的网络没有显示数据源的调用。
如果我正确地将数据表集成到标签视图中,您是否可以采取行动。
答案 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示例显示了如何使用initialRequest
和sendRequest
。