2013-07-19 43 views
0

裏面我有一個數據表中配置如下YUI2數據表標籤

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

我知道這不是一個完整的答案,但我一直沒有使用YUI2很長一段時間了。這是我記得的,我希望它有幫助。在隱藏容器中創建DataTable時存在問題,尤其是在需要執行大量計算以將標頭同步到內容時滾動的DataTable。在某些瀏覽器中,試圖讀取不可見元素的寬度或高度會導致錯誤。如果你在調試器中運行你的代碼並且出現'break on error'選項,你很可能會看到一些錯誤發生。這可以防止DataTable完成初始化,因此它在獲取數據時永遠不會到達該部分。

我不記得名字,但瀏覽API文檔,我發現onShow()這是爲了解決這個問題。

此外,傾聽標籤上的點擊並不能保證該標籤的面板可見。您應該聽取TabView上的activeTabChange,它在選項卡變爲可見之後觸發。

對不起,如果我不能得到太多的幫助,這是一段時間。乾杯。

0

我在一段時間內沒有使用YUI2(我強烈建議您不要使用YUI2編寫任何新代碼,並切換到YUI3以獲取新的內容),但它看起來像缺少了initialRequest選項或調用DataSource上的sendRequest

該示例顯示如何使用initialRequestsendRequest